私は理解
sudo cd /directory
次を返します。
sudo: cd: command not found
cd はバイナリファイルではなくシェル組み込みコマンドであるためです。しかし、なぜ
sudo echo 'this is a test'
お元気ですか?
ここで何が起こっているのでしょうか?シェルでない場合、sudo
コマンドをどのように見つけることができますか?echo
ベストアンサー1
理由は簡単です。cd
これはシェル組み込み関数(一部のシェルではシェル関数)で、echo
バイナリファイルであり、シェル組み込み関数です。
$ type -a cd
cd is a shell builtin
$ type -a echo
echo is a shell builtin
echo is /bin/echo
sudo
シェルの組み込みは処理できませんが、処理できます。を$PATH
使用すると で見つかるのでこれを使用し、 で見つからないので失敗します。sudo echo
/bin/echo
$PATH
sudo cd
cd
$PATH