which コマンドは、シェルで実行されるコマンドの実体(実行ファイル)の場所を表示 するコマンドです。
複数のパスに同じコマンドが存在する場合、実際に使われるものを調べるのに役立ちます。
構文(Syntax)
which [オプション] コマンド名...
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 最初に見つかったコマンドのパスを表示 | which ls |
-a | PATH にあるすべての一致を表示 | which -a python |
実行例
コマンドのパスを表示
which ls
出力例:
/bin/ls
Python がどこにあるか確認
which python3
出力例:
/usr/bin/python3
複数存在する場合(-a オプション)
which -a python
出力例:
/usr/bin/python
/usr/local/bin/python
複数のコマンドを同時に確認
which ls cp mv
出力例:
/bin/ls
/bin/cp
/bin/mv
エラー例(存在しないコマンド)
which notfound
出力例(何も表示されない or 1を返す):
which: no notfound in (/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin)
関連コマンド
type: シェル組み込みかどうかも含めて確認可能command -v: POSIX 標準で推奨されるコマンド検索whereis: 実行ファイルだけでなく man ページやソースも検索whatis: コマンドの概要を表示
備考
whichは環境変数PATHをもとに検索します。- シェルの組み込みコマンド(例:
cd,echoなど)は表示されません(typeを使うべき)。 - 一部のディストリビューションでは
whichが非推奨で、代わりにcommand -vやtypeの使用が推奨されます。
参考
- manページ: man7.org which(1)
- GNU Which: https://www.gnu.org/software/which/

コメント