Linuxコマンドwhereisの使い方と7つのオプション

Linuxコマンドwhereisは、特定のファイルがシステムのどこにあるか、そしてそのファイルに関連するバイナリファイル(実行ファイル)、ソースファイル、マニュアルページなどを迅速に見つけるのを助けてくれます。今回はwhereisコマンドの基本的な使い方と、いくつかの便利なオプションについて説明します。

whereisコマンドとは?

whereisコマンドは、主に特定のコマンドの実行ファイル、ソースコード、そしてマニュアル(man)ページを探すために使用されます。このコマンドは、システムにインストールされているプログラムのファイルパスを簡単に見つけることができるため、どのプログラムがどこにインストールされているのかを確認したい場合に非常に役立ちます。例えば、lsコマンドの場所を確認したい場合、whereis lsコマンドを入力すれば、その結果が表示されます。

基本的な使い方

whereis [オプション] [探したいファイル名]
ShellScript

上記の形式では、[オプション]は省略可能で、[探したいファイル名]には、探したいコマンドやファイル名を入力します。

whereis ls
ShellScript

このコマンドを実行すると、lsコマンドに関連するバイナリファイル、ソースファイル、マニュアルページのパスが表示されます。以下に示す出力結果は、lsコマンドの実行ファイルが/bin/lsにあり、関連するマニュアルページが/usr/share/man/man1/ls.1.gzにあることを意味します。

図1. Linuxコマンドwhereis lsの実行結果
図1. Linuxコマンドwhereis lsの実行結果

whereisコマンドの主要オプション

whereisコマンドは、ユーザーが望む方法でファイルを見つけられるように、さまざまなオプションを提供しています。主要なオプションを見ていきましょう。

-b: バイナリファイルのみを検索

-bオプションは、バイナリファイルのみを検索し、ソースファイルやマニュアルページは除外します。例えば、以下のコマンドは、lsコマンドの実行ファイルの場所のみを表示します。

whereis -b ls
ShellScript

下の図では、実行ファイルのパスだけが表示されていることを確認できます。

図2. Linuxコマンドwhereis -bオプションでバイナリファイルのみを検索
図2. Linuxコマンドwhereis -bオプションでバイナリファイルのみを検索

-m: マニュアルファイルのみを検索

-mオプションは、マニュアルファイルのみを検索する際に使用します。例えば、以下のコマンドは、lsコマンドに関連するマニュアルファイルの場所のみを表示します。

whereis -m ls
ShellScript

下の図では、マニュアルファイルのパスだけが表示されていることを確認できます。

図3. Linuxコマンドwhereis -mオプションでマニュアルファイルのみを検索
図3. Linuxコマンドwhereis -mオプションでマニュアルファイルのみを検索

-s: ソースファイルのみを検索

-sオプションは、ソースファイルのみを検索する際に使用します。例えば、以下のコマンドは、lsコマンドに関連するソースファイルの場所のみを表示します。

whereis -s ls
ShellScript

ソースファイルが見つからない場合は、以下のようにコマンド名だけが表示され、終了します。

図4. Linuxコマンドwhereis -sオプションでソースファイルのみを検索
図4. Linuxコマンドwhereis -sオプションでソースファイルのみを検索

-u: 特定のファイルが存在しない場合のみ表示

-uオプションは、バイナリファイル、ソースファイル、マニュアルページのいずれかが存在しない場合にのみ表示します。例えば、特定のプログラムにマニュアルがない場合、このオプションを使用してその事実をすばやく確認することができます。

whereis -u ls
ShellScript

-B, -M, -S: 検索パスの指定

whereisコマンドは、デフォルトでシステムに定められたパスからファイルを検索します。しかし、ユーザーが特定のパスのみからファイルを探したい場合、-B, -M, -Sオプションを使用して検索パスを指定できます。

  • -B: バイナリファイルを検索するパスの指定
  • -M: マニュアルファイルを検索するパスの指定
  • -S: ソースファイルを検索するパスの指定

例えば、/usr/binディレクトリのみからzshコマンドのバイナリファイルを探したい場合、次のように入力します。

whereis -B /usr/bin -b zsh
ShellScript

下の図では、zshのパスが複数あることが分かります。バイナリのパスを /usr/bin に指定すると、そのパス内のバイナリだけが検索されます。

図5. Linuxコマンドwhereis検索時の検索パス指定
図5. Linuxコマンドwhereis検索時の検索パス指定

whereisコマンドの活用ヒント

システムトラブルの解決

whereisコマンドは、特定のプログラムが期待された場所にないとき、その確認を素早く行うのに役立ちます。特に、プログラムがインストールされているかどうか確認したり、間違った場所にインストールされた場合のトラブルシューティングに便利です。

マニュアルページの欠如確認

Linuxでは、コマンドのマニュアルページを通じて使い方を簡単に確認できます。whereis -mオプションを使用して、特定のコマンドのマニュアルページが欠如しているかどうかを確認できます。もしマニュアルページがない場合、追加インストールが必要になる可能性があります。

複数ファイルの位置確認

複数のファイルやコマンドの位置を一度に確認したい場合、スペースで区切ってファイル名を列挙します。

whereis ls cp mv
ShellScript

このようにすると、ls, cp, mvコマンドそれぞれのファイル位置を、以下の図のように一度に確認できます。

図6. Linuxコマンドwhereisで複数ファイルの位置を一度に確認
図6. Linuxコマンドwhereisで複数ファイルの位置を一度に確認

使用時の注意点

  • シンボリックリンクに注意: whereisコマンドはシンボリックリンク(特定のファイルを指すリンク)をたどらないため、実際のファイルの位置ではなくリンクの位置を返す場合があります。この点に注意が必要です。
  • 環境変数とパス: whereisコマンドは、環境変数PATHに指定されたパスに基づいて検索を行います。そのため、特定のパスにインストールされたプログラムがPATHに含まれていない場合、whereisコマンドで見つからないことがあります。
  • 正確なファイル名の使用: ファイル名を入力するときは正確に入力する必要があります。そうしないと、予想外の結果が得られる可能性があります。

まとめ

Linuxでファイルを探すことは非常に重要な作業であり、その中でもwhereisコマンドは、ファイルの位置を迅速かつ正確に見つけるための便利なツールです。さまざまなオプションを活用して、特定のファイルのみを検索したり、特定のパスからだけファイルを探すなど、さまざまな方法で使用できます。特にシステム管理作業において、プログラムが正しくインストールされているか、マニュアルページがあるかどうかを確認するのに役立ちます。

リファレンス

関連ポスト

コメントする