当我检查ls
命令时,存在一系列:
$ type -a ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /usr/local/opt/coreutils/libexec/gnubin/ls
ls is /bin/ls
如果从文件夹中查看它们
$ ls /usr/local/opt/coreutils/libexec/gnubin/ | grep "ls"
false
ls
它是单个 ls 命令而不是三个。
type -a 产生三个相同的原因是什么/usr/local/opt/coreutils/libexec/gnubin/ls
?
答案1
/usr/local/opt/coreutils/libexec/gnubin
PATH
不止一次出现在你的身上,所以type -a
看了三遍,报告说ls
每一项都在那里找到了。
您可以检查您的 PATH ( echo "$PATH"
) 以查看这一点,或操纵它来复制和修改行为:
PATH=/bin:/bin type -a ls
PATH=/usr/local/opt/coreutils/libexec/gnubin:/bin type -a ls
在环境设置中的某个位置,变量被多次设置,可能是由于运行了PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
多次添加额外行的自动脚本。