id
프로그램을 /usr/bin/
디렉토리에서 내 home
디렉토리 로 복사 했습니다 . id
프로그램이 복사된 디렉터리에서 명령을 실행하면 어떤 것이 실행될지 모르겠습니다 .
Bash는 변수에서 프로그램을 검색 PATH
하거나 디렉터리에서 실행합니까?
확인할 수 있는 방법이 있나요?
답변1
type id
또는 를 사용하여 이것이 명령으로 command -v id
어떻게 해석되는지 확인할 수 있습니다 . 나에게는 다음이 표시됩니다.bash
id
$ type id
id is /usr/bin/id
$ command -v id
/usr/bin/id
예, bash
검색됩니다 $PATH
. 하지만 일단 찾으면 위치를 기억하므로 매번 검색할 필요가 없습니다. 이전에 실행한 후 이동하면 문제가 발생할 수 있습니다. hash
명령을 사용하여 hash id
해당 항목이 현재 존재하는지 확인할 수 있습니다.
답변2
쉘은 PATH
일치하는 명령을 찾을 때까지 항상 변수에 나열된 디렉토리를 순서대로 검색합니다.
id
다음을 사용하여 무엇을 선택하는지 확인할 수 있습니다.
command -v id
바이너리를 이동하는 경우(하지 말아야 할 경우) 캐시 목록의 위치를 기억하기 위해 hash -r
재설정 유틸리티를 실행해야 할 수도 있습니다.bash