回答:
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