which コマンドは、PATH 変数に割り当てられたディレクトリを検索して、指定されたコマンドの完全なパスを表示します。たとえば、どの猫を入力すると、次の出力が表示されます:/bin/cat.
$ which cat /bin/cat
したがって、 which コマンドは、プログラムを変更する必要がある場合に、プログラムがインストールされている場所を見つけるのに役立ちます。また、コマンドの複数のバイナリが異なる場所に保存されている場合に、使用しているコマンドのバージョンを特定するのにも役立ちます。コマンドが実行されている場所を特定することで、そのコマンドの予期しない動作をトラブルシューティングできます。
構文
which コマンドの構文は次のとおりです:
$ which [options] {program names}
which コマンドの実行中に以下のエラーが発生した場合:
which: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:
分布 | コマンド |
---|---|
OS X | brew install debianutils |
Debian | apt-get インストール debianutils |
Ubuntu | apt-get install npm |
アルパイン | apk add which |
Arch Linux | pacman -S which |
カリ Linux | apt-get インストール debianutils |
CentOS | yum install which |
Fedora | dnf install which |
Raspbian | apt-get インストール debianutils |
どのコマンドの例
1. PATH 環境変数を検索し、一致する実行可能ファイルの場所を表示します。
$ which executable
2. 一致する実行可能ファイルが複数ある場合は、すべて表示:
$ which -a executable
最終的な考え
which コマンドは、シェルの検索パスで実行可能ファイルを見つけます。 which プログラム自体を見つけることもできます:
$ which which /usr/bin/which
検索パスに同じ名前のプログラムが複数ある場合 (たとえば、/usr/bin/who と /usr/local/bin/who)、最初のプログラムのみが報告されます。