whichとtypeとwhereas(Bashの場合)

コマンドを探すコマンド3つです。ちょこっと比較しただけなので未消化になってしまいました。

which

whichは基本的に$PATHをサーチしてコマンドの位置を表示するらしい。

$ which ls
/bin/ls

ビルトインコマンドの場合は、たとえば

$ which dirs

としてもBashは何も表示されません。zshやらcshなら表示されました。

% which dirs
dirs: shell built-in command

type

typeは$PATHやビルトインやaliasやを探して、実際に有効なものを表示するようです。

$ type ls
ls is aliased to `gls --color=auto -F'

これはわたしが.bashrcの中で定義して内容が表示されています。
コマンドも含め、見つかったもの全部を表示させるためには

$ type -a ls
ls is aliased to `gls --color=auto -F'
ls is /bin/ls

とします。なかなか便利そうです。

whereis

$ man whereas

とすると以下のように表示されます。

The whereis utility checks the standard binary directories for the specified programs, printing out the paths of any it finds.

standard binary directoriesって何なんでしょうか。
とりあえず、whichと同じような表示がされますが、よくわかりません。

コメント