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

名前

       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/> から入手できる。