1. ホーム
  2. linux

[解決済み] Shell - あるコマンドのディレクトリを見つけるには?

2022-04-24 09:34:21

質問

シェルを使っているとき、使えるコマンドはPATHに設定されたディレクトリにあるものだけというのは知っています。 PATH変数にどんなディレクトリがあるか見る方法を知らないのですが(これも良い質問ですね)、私が知りたいのは、次のようなことです。

シェルと書き込みに来ました。

$ lshw

シェルで、このコマンドがどこにあるか教えてくれるコマンドを知りたいのですが。言い換えれば、この"実行ファイル"はどこにあるのでしょうか?

のようなものです。

$ location lshw
/usr/bin

誰かいませんか?

解決方法は?

Bashやzshを使用している場合は、こちらをご利用ください。

type -a lshw

これは、ターゲットがビルトインなのか、関数なのか、エイリアスなのか、それとも外部実行ファイルなのかを表示します。もし後者なら、そのターゲットが PATH .

bash$ type -a lshw
lshw is /usr/bin/lshw
bash$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
bash$ zsh
zsh% type -a which
which is a shell builtin
which is /usr/bin/which

Bashでは、関数の場合 type -a は、関数の定義も表示します。また declare -f functionname を使えば同じことができます (zshではこれを使わなければなりません。 type -a はない)。