WHEREIS
Section: User Commands (1)
Updated: October 2014
Index
JM Home Page
roff 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/>
から入手できる。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- ファイルを検索するパス
-
- 環境変数
-
- 用例
-
- 入手方法
-
This document was created by
man2html,
using the manual pages.
Time: 16:46:46 GMT, November 24, 2023