回答:
cd
シェル組み込みです。sudo
実行可能ファイルでのみ機能します。できますsudo sh -c 'cd dirname'
が、シェルが終了するとすぐに、元のディレクトリに戻ります。あなたが達成しようとしていることを言うなら、私はあなたがそれを行う方法を見つけるのを助けることができます。
sudo pwd
も機能しませんか?(私はいつもその考え出しsudo cd
ない仕事を、あなただけの後に、結果を見ていないsudo
に戻ります。しかし、それはちょうど野生の推測だった。たぶん、どちらcd
もpwd
実際にビルトインされているバッシュにMac上で。ランニングはwhich cd
ない確かに私に結果を与える。実行中sudo cd /
エラーは発生しませんが、実際に作業ディレクトリが変更されることはありません。)
pwd
は外部実行可能ファイルでもあるため、動作します。一部のシステムにはcd
実行可能ファイルがありますが、ほとんどは役に立たないことに注意してください。ちなみに、type -a cd
それを使用するよりもはるかに有益ですwhich
。
type -a cd
両方cd is a shell builtin
とcd is /usr/bin/cd
私のMacで表示します。そして同様にpwd
とecho
。そして、両方sudo pwd
とは、sudo echo "Hello world"
私に結果を与える行います。ただし、をtype -a return
生成するだけでreturn is a shell builtin
、をsudo return 3
表示しますsudo: return: command not found
。だから、私は質問があると思います:OPはエラーメッセージを取得しますか、またはOPはcd
エラーなしで作業を表示しませんか?(または:OPはどのOSを使用していますか)
sudo sh -c 'cd dirname'
私のために何もしません。
cd
ます。また、現在のシェルにcd
コマンドがない場合、失敗する代わりに何もできません。これまで人間が使用することができる任意のシェルがいるcd
、を含みます/bin/sh
。しかし、オペレーティングシステムカーネルから見ると、シェルはそれよりもはるかに単純であり、わずか数行のコードですらあります。外部コマンドのポイントは何ですか?をcd