Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all 

名前
whereis - コマンドのバイナリ、ソース、マニュアルファイルがどこにあるかを突き止める
書式
whereis [options] [-BMS directory... -f] name...
説明
whereis は、指定されたコマンド名について、 そのバイナリ、ソース、マニュアルファイルがどこにあるかを突き止
める。 whereis に渡された名前は、まず先行するパス名の部分が取り除かれ、 次に、末尾に .ext の形を取る拡張
子 (たとえば、.c など) があれば、それも (ひとつだけ) 取り除かれる。ソースコードコントロールシステム
(SCCS) を使用したことによる s. という接頭辞への対応も行われる。whereis は、それから、検索対象のプログラム
などを Linux の標準的な場所と、$PATH や $MANPATH によって指定されている場所で見つけ出そうとする。
[訳注] 「s. という接頭辞への対応」というのは、たとえば、ls のソースファイルの探索を求められたとき
に、ls.c だけでなく、s.ls.c といったファイルも捜しに行くようにすることである。
検索対象の限定 (オプション -b, -m, -s) は累加式であり、コマンドラインで後に続く name というパターンに適用
される。 なお、検索対象の限定をやり直すと、検索の条件が再設定されることになる。たとえば、
whereis -bm ls tr -m gcc
は、"ls" と "tr" については、バイナリファイルと man ページを見つけようとし、"gcc" については、man ページ
だけを捜す。
オプション -B, -M, -S は、後に続く name というパターンに対する検索パスを設定し直す。たとえば、
whereis -m ls -M /usr/share/man/man1 -f cal
は、"ls" の man ページは、デフォルトのパスのすべてで捜すが、"cal" については、/usr/share/man/man1 ディレ
クトリのみで検索する。
オプション
-b バイナリを検索する。
-m マニュアルを検索する。
-s ソースを検索する。
-u 検出結果が異例であるコマンド名についてのみ表示する。 ここで異例というのは、明示的に調査を要求した
各タイプについて、検出結果がただ 1 つではないことである。従って、'whereis -m -u *' というコマンド
は、 カレントディレクトリのファイルのうちで、文書ファイルがまったく存在しないか、2 つ以上存在する
ものを求めることになる。
[訳注] この説明は古くなっているのではないかと思う。実際には、手元の util-linux 2.36 で 'whereis -m
-u *' を実行しても、文書ファイルのまったく存在しないものについては、何も表示されない。2 つ
以上存在するものだけが表示される。
-B list
whereis がバイナリを捜す場所を限定する。list は、ホワイトスペース (訳注: スペースやタブ) で区切っ
たディレクトリのリストである。
-M list
whereis がマニュアルや info 形式の文書を捜す場所を限定する。list は、ホワイトスペースで区切った
ディレクトリのリストである。
-S list
whereis がソースを捜す場所を限定する。list は、ホワイトスペースで区切ったディレクトリのリストであ
る。
-f ディレクトリのリストは直前で終わり、ここからファイル名が始まると知らせる。-B, -M, -S オプションの
何れかを使用するときは、これを使わなければならない。
-l whereis が実際に使用している検索パスのリストを表示する。-B, -M, -S のどれも指定されていない場合に
このオプションが表示するのは、 ハードコードされたパスのうちで、whereis がシステム上で見つけること
のできたものである。
-h, --help
ヘルプを表示して終了する。
-V, --version
バージョン情報を表示して終了する。
ファイルを検索するパス
デフォルトで whereis は、ハードコードされたパスを使って、ファイルを見つけようとするが、 このパスは、グロ
ブのパターンで定義されている。また、 whereis は、環境変数 $PATH と $MANPATH の内容をデフォルトの検索パス
として使用しようとする。 どんなパスが使われているかを知る一番簡単な方法は、 リストオプションの -l を付け
足すことである。-l を使えば、-B, -M, -S の効果も表示される。
環境変数
WHEREIS_DEBUG=all
デバッグ出力を有効にする。
用例
/usr/bin にあるファイルの内、/usr/man/man1 にマニュアルがないか、 /usr/src にソースのないものをすべて見つ
け出す。
cd /usr/bin
whereis -u -ms -M /usr/man/man1 -S /usr/src -f *
[訳注] 上記のコマンドは、少なくとも手元の util-linux 2.36 では、指定したディレクトリにマニュアルやソース
がないものの表示はせず、たとえば passwd.1.gz と passwd.1ssl.gz のように、そうしたものが 2 つ以上あ
る場合だけ表示するようだ。-u オプションの訳注も参照。なお、 当方の場合、マニュアルがあるの
は、/usr/share/man/man1 である。
入手方法
このコマンドは util-linux パッケージの一部であり、Linux Kernel Archive
<https://www.kernel.org/pub/linux/utils/util-linux/> から入手できる。
util-linux October 2014 WHEREIS(1)