명령을 확인하면 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
추가 줄을 여러 번 추가하는 자동화된 스크립트를 실행하기 때문일 수 있습니다.