Linux / コマンド / whereis - コマンドのバイナリ・ソース・マニュアルの場所を探す
whereisは、コマンドに関連するバイナリ、ソースコード、マニュアルページを標準システムの場所で探します。PATH上の外部実行ファイルを探すwhichコマンドとは異なり、複数の種類の関連ファイルを一度に確認する際に便利です。
この記事ではwhereisの基本的な文法と主なオプション、実際の使用例、関連コマンドとの違い、使用時の注意点について説明します。
util-linuxのwhereisは、既定の検索場所に加え、PATH(実行ファイルの探索先)や MANPATH(マニュアルの探索先)などから検索場所を構成します。ファイルシステム全体を再帰的に探索するコマンドではないため、任意のユーザーディレクトリや標準外のインストール場所は見つからない場合があります。
基本的な文法
whereis [オプション] 名前 ...
オプションや詳細な動作は実装やバージョンによって異なる場合があります。現在のシステムではwhereis --helpとman whereisでインストールされたコマンドの説明を確認してください。
whereisの基本的な使い方
コマンド関連の場所をすべて探す
バイナリやマニュアルなど、見つかったパスを一行で表示します。
whereis bash
バイナリのみを探す
-bで実行ファイルのみ検索することを選択します。
whereis -b ssh
マニュアルのみを探す
-mでマニュアルページの位置だけを探します。
whereis -m printf
バイナリとマニュアルの位置を区別する
whereisは名前に関連する実行ファイル・マニュアルなどの標準的な場所を検索します。ディスク全体を再帰的に検索することはありません。
whereis ls
例の出力(インストールパスは環境によって異なります):
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
前のパスは実行ファイル、後のパスはマニュアルファイルです。現在のシェルが実際に選択する実行パスを知りたい場合は、typeまたはcommand -vを使用してください。
主なオプション
| オプション | 説明 |
|---|---|
-b |
バイナリを検索します。 |
-m |
マニュアルページを検索します。 |
-s |
ソースファイルを検索します。 |
-B DIRS -f |
バイナリ検索パスを指定します。 |
-M DIRS -f |
マニュアル検索パスを指定します。 |
-S DIRS -f |
ソース検索パスを指定します。 |
-u |
明示した各種類で結果がちょうど1件にならない名前を表示します。0件や複数件が対象で、危険なファイルを判定する指定ではありません。 |
-l |
実際の検索パスの一覧を表示します。 |
実践的活用例
検索パスを確認する
結果が予想と異なる場合は、-lで現在の実装が確認するパスをまず見ます。
whereis -l
カスタムパスでバイナリを探す
パスリストオプションの後には、ファイル名の処理を開始する-fが必要です。
whereis -b -B /usr/local/bin /opt/tools/bin -f mytool
実行パスと関連ファイルを一緒に診断する
シェル選択の結果と標準位置の関連ファイルをそれぞれ確認します。
command -v python3
whereis python3
whereisと関連コマンドを比較する
| コマンド | 主な役割 | 適した状況 |
|---|---|---|
whereis |
標準位置の関連ファイル | バイナリ・ソース・マニュアルを探索する |
which |
PATH実行ファイル | 外部実行パスの確認 |
type |
シェルコマンドの種類 | エイリアス・関数・組み込みを含む診断 |
find |
パスを直接巡回 | 任意の場所と複雑な条件 |
使用する際の注意点
ディスク全体の検索ではありません
検索パス外にインストールされたファイルは見えない場合があります。
基本はプログラム名で指定する
基本はプログラム名を指定します。先頭のディレクトリ部分は取り除かれるため、パスを渡してもその場所を直接調べたり、その配下を再帰検索したりする指定にはなりません。
-B・-M・-Sの後の-fを確認する
検索ディレクトリのリストが終わり、ファイル名が始まることを区別しないと、引数の解釈が異なります。
FAQ
whereis は PATH だけを検索しますか?
いいえ。標準のバイナリ・ソース・マニュアルのパスや、環境から取得した位置を検索します。
結果がない理由は何ですか?
非標準の場所にインストールされているか、選択した種類のファイルが検索パスにない可能性があります。
検索パスを見ることはできますか?
util-linux の実装では whereis -l を使用します。
システム全体でファイルを探すには?
現在の状態を直接検索するにはfindによるパス探索、インデックスベースの名前検索には locate を使用します。




