
StackOverflow の回答の多くは、 がcd
組み込みであるためだと示唆していますが、type cd
と はtype pwd
両方とも「シェル組み込み」を返し、sudo cd
「コマンドが見つかりません」とだけ返します。
つまり、 「プログラムでのみ機能する」cd
という SO の多くの回答とは反対に、特別なケースとして扱われるのでしょうか?sudo
答え1
pwd
シェル組み込み関数として存在する(これがtype pwd
シェル組み込み関数であることを示す理由である)GNU コアユーティリティpwd
システムが使用している のバージョンはGNU コアユーティリティバージョン。これは実行可能ファイルなので、cd
シェルの組み込みコマンドである sudo を使用して実行できます。
これを自分で確認することができます。
これらのコマンドの両方を自分で入力し、結果を確認します。(システム内に同じコマンドの複数のバージョンがある場合、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
(試してくださいwhereis pwd
)、sudo
それを使用します。