WHEREIS

Section: User Commands (1)
Updated: October 2014
Index JM Home Page
 

名前

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 である。
 

入手方法

この whereis コマンドは util-linux パッケージの一部であり、Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/> から入手できる。


関連キーワード

whereis, パス, 表示, 検索, usr, WHEREIS, コマンド, ソース, ディレクトリ, list 

Index

名前
書式
説明
オプション
ファイルを検索するパス
環境変数
用例
入手方法

This document was created by man2html, using the manual pages.
Time: 13:30:33 GMT, January 09, 2022