utte

whereis コマンドの実行ファイル、マニュアル、ソースの場所を探す

whereis [オプション] 名前...

試してみる

主なオプション

-b実行ファイル(バイナリ)だけを探す
-mマニュアルだけを探す
-sソースだけを探す
-B ディレクトリ...実行ファイルを探す場所を指定する(-f で終わる)
-M ディレクトリ...マニュアルを探す場所を指定する(-f で終わる)

解説

探す場所

whereis は、PATH ではなく、決まった標準のディレクトリ(/bin、/usr/bin、/usr/share/man など)から探します。そのため、PATH に入っていない場所の実行ファイルも、標準の場所にあれば見つかります。

which との違い

which は PATH の中で最初に見つかった実行ファイルだけを表示しますが、whereis は実行ファイルに加えて、マニュアルとソースファイルの場所も表示します。たとえば whereis ls では、/usr/bin/ls と /usr/share/man/man1/ls.1.gz が並びます。

見つからないとき

見つからなくても、エラーにはなりません。nosuchcommand: のように、名前の後ろに何も付かない行が表示されます。終了コードも 0 なので、存在確認には which や type のほうが向いています。

探す対象を絞る

標準では3種類をすべて探します。-b(実行ファイル)、-m(マニュアル)、-s(ソース)で絞れます。

試験での注意

which は PATH、whereis は標準の場所、find はディレクトリの下をすべて、と探し方が違うことを区別しましょう。locate はデータベースを使う、さらに別の方法です。

関連するコマンド

LinuC 101の出題範囲