ls
cd
기본 명령(예: 명령 사용)에 대한 경로를 찾으려고 합니다 which
. 경로는 보이지만 ls
경로는 보이지 않습니다 cd
. 물론 두 명령 모두 잘 작동합니다. 어떤 아이디어가 있나요?
$ which ls
/bin/ls
$ which cd
$
답변1
cd
항상 쉘 자체에서 제공되는 내장 명령입니다. 외부 유틸리티로는 검색되지 않습니다. 이것은 결코 Linux에만 국한된 것이 아닙니다.
~에서cd
POSIX 표준의 "애플리케이션 사용" 섹션:
cd
현재 쉘 실행 환경에 영향을 주기 때문에 항상 일반 쉘 내장으로 제공됩니다. 다음 중 하나와 같이 서브셸 또는 별도의 유틸리티 실행 환경에서 호출하는 경우:
(cd /tmp)
nohup cd
find . -exec cd {} \;
호출자 환경의 작업 디렉터리에는 영향을 주지 않습니다.
명령 경로를 찾는 이식 가능한 방법은 다음을 사용하는 것입니다 command -v
.
bash-4.4$ command -v ls
/bin/ls
bash-4.4$ command -v cd
cd
type
좀 더 자세히 설명하겠습니다.
bash-4.4$ type ls
ls is /bin/ls
bash-4.4$ type cd
cd is a shell builtin
여러분도 구경해 보세요”" which "를 사용하지 않는 이유는 무엇입니까? 그러면 무엇을 사용해야 합니까?"