답변:
cd
쉘 내장입니다. sudo
실행 파일에서만 작동합니다. 당신은 할 수 sudo sh -c 'cd dirname'
있지만, 즉시 쉘 종료로, 당신은 당신이에서 시작 디렉토리로 돌아갑니다. 당신이 성취하려고하는 것을 말하면, 그렇게하는 방법을 찾도록 도울 수 있습니다.
sudo pwd
작동하지 않습니까? (항상 그것이 효과 sudo cd
가 있다고 생각 했지만 sudo
반환 후 결과를 보지 못하고 있습니다 . 그러나 그것은 단지 거친 추측 일뿐입니다. Mac의 Bash에는 실제로 내장되어 있지 cd
않거나 pwd
실제로 내장되어 있지 않습니다 . 실행 which cd
은 실제로 결과를 제공합니다. sudo cd /
나에게 오류를주지 않지만 실제로 작업 디렉토리가 변경되지는 않습니다.)
pwd
또한 외부 실행 파일이므로 작동합니다. 일부 시스템에는 cd
실행 파일이 있지만 대부분 쓸모가 없습니다. 그런데 type -a cd
보다 유익한 정보를 사용해보십시오 which
.
type -a cd
모두 표시됩니다 . 그리고 마찬가지로에 와 . 그리고 모두 와는 나에게 결과를 제공 할 수. 그러나, 만 산출 하고 나에게 보여줍니다 . 그래서 질문은 OP가 오류 메시지를 받습니까 , 아니면 OP 가 오류없이 작업을 보지 않습니까? (또는 : 어떤 OS에서 OP를 사용하고 cd is a shell builtin
cd is /usr/bin/cd
pwd
echo
sudo pwd
sudo echo "Hello world"
type -a return
return is a shell builtin
sudo return 3
sudo: return: command not found
cd
sudo sh -c 'cd dirname'
나를 위해 아무것도하지 않습니다.
cd
이 있습니다. 그리고 현재 쉘에 cd
명령 이 없을 때 실패하는 대신 아무것도 할 수 없습니다 . 를 cd
포함하여 인간이 사용할 수있는 모든 껍질이 있습니다 /bin/sh
. 그러나 운영 체제 커널에서 볼 수있는 프로그램은하는 쉘은 줄의 코드도 단지 몇보다 훨씬 간단 할 수 있습니다. 외부 명령 의 요점은 무엇입니까?를cd