どのプログラムが始まるか

どのプログラムが始まるか

idプログラムを/usr/bin/ディレクトリから自分のhomeディレクトリにコピーしました。idプログラムがコピーされたディレクトリからコマンドを実行すると、どのようなものが実行されるのかわかりません。

Bashは変数からプログラムを検索する PATHか、ディレクトリから実行しますか?

確認する方法はありますか?

答え1

type idまたはを使用して、これがコマンドとしてどのようにcommand -v id解釈されるかを確認できます。私には以下が表示されます。bashid

$ type id
id is /usr/bin/id
$ command -v id
/usr/bin/id

はい、bash検索されます$PATH。しかし、一度見つけたら場所を覚えているので、毎回検索する必要はありません。以前に実行した後に移動すると、問題が発生する可能性があります。hashコマンドを使用して、hash idそのエントリが現在存在するかどうかを確認できます。

答え2

シェルは、PATH一致するコマンドが見つかるまで、常に変数にリストされているディレクトリを順番に検索します。

id以下を使用して、何を選択しているかを確認できます。

command -v id

バイナリを移動する場合(しないでください)、キャッシュリストの場所を記憶するためにhash -rリセットユーティリティを実行する必要があるかもしれません。bash

関連情報