実行ファイルはどこにありますか?

実行ファイルはどこにありますか?

実行するコマンドがあります。これを と呼びましょう。次のようにフルパスを指定せずにfoo実行できます。foofoo

$ foo
missing args

fooは bash スクリプトであると思われるので、 のソース コードを確認したいのですfooが、確認するとwhich foo標準エラー メッセージが表示されます。

which: no foo in (/usr/local/bin ...removed for brevity ...)

何が起こったのですか?

答え1

組み込み関数を使うこともできますtype。これは、引数がコマンド名として使用された場合にどのように解釈されるかを示します。たとえば、関数、組み込み関数、バイナリ( の下$PATH)などです。

$ f() { echo foo; }
$ type f
f is a function
f ()
{
    echo foo
}
$ type type
type is a shell builtin
$ type grep
grep is /usr/bin/grep
$ alias z='echo zee zee'
$ type z
z is aliased to `echo zee zee'

参照なぜ を使わないのですか"which"? では何を使うのでしょうか?この件に関するより詳しい記事については、こちらをご覧ください。

関連情報