`type -a ls` 产生三个相同的 ls 地址

`type -a ls` 产生三个相同的 ls 地址

当我检查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/gnubinPATH不止一次出现在你的身上,所以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多次添加额外行的自动脚本。

相关内容