'sudo pwd'는 작동하지만 'sudo cd'는 작동하지 않는 이유는 무엇입니까?

'sudo pwd'는 작동하지만 'sudo cd'는 작동하지 않는 이유는 무엇입니까?

StackOverflow 답변의 대부분은 그것이 cd내장되어 있기 때문이라고 제안하지만 type cdtype pwd다 "쉘 내장"을 반환하고 sudo cd"명령을 찾을 수 없음"만 반환합니다.

그래서 " 프로그램에서만 작동합니다" cd라는 SO에 대한 많은 답변과 달리 특별한 경우로 처리됩니까 ?sudo

답변1

pwdtype pwd쉘 내장( 쉘 내장임을 반환하는 이유)과 별도로 존재합니다.GNU 핵심 유틸리티. pwd시스템에서 사용 중인 버전은 다음과 같습니다.GNU 핵심 유틸리티버전. 실행 파일이므로 sudo를 사용하여 실행할 수 있습니다. cd쉘 내장 명령과는 다릅니다 .

이것을 직접 확인할 수 있습니다.

이 두 명령을 직접 입력하고 결과를 관찰하십시오. (시스템에 동일한 명령의 여러 버전이 있는 경우 which명령을 입력하면 어떤 명령이 호출되는지 알려줍니다.)

which pwd

which cd

쉘 내장은 which명령을 실행할 때 실행 파일에 대한 폴더 경로를 반환하지 않습니다. 다음은 내 시스템에서 두 명령의 출력 예입니다.

nate@linux:~> which pwd  
/usr/bin/pwd


nate@linux:~> which cd
which: no cd in (/home/nate/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/home/nate/Scripts:/home/nate/Scripts)

답변2

pwd어딘가에 실행 파일(try whereis pwd) 이 있고 sudo그것을 사용합니다.

관련 정보