기본 Linux 실행 파일 경로가 표시되지 않음

기본 Linux 실행 파일 경로가 표시되지 않음

lscd기본 명령(예: 명령 사용)에 대한 경로를 찾으려고 합니다 which. 경로는 보이지만 ls경로는 보이지 않습니다 cd. 물론 두 명령 모두 잘 작동합니다. 어떤 아이디어가 있나요?

$ which ls
/bin/ls
$ which cd
$

답변1

cd항상 쉘 자체에서 제공되는 내장 명령입니다. 외부 유틸리티로는 검색되지 않습니다. 이것은 결코 Linux에만 국한된 것이 아닙니다.

~에서cdPOSIX 표준의 "애플리케이션 사용" 섹션:

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 "를 사용하지 않는 이유는 무엇입니까? 그러면 무엇을 사용해야 합니까?"

관련 정보