実行可能ファイルへのフルパスを指定せずにプログラムを実行すると、Bashは$PATH
内のディレクトリを検索する必要があります バイナリを見つけるために、Bashはある種のキャッシュのパスを覚えているようです。たとえば、ソースから/usr/local
にSubversionのビルドをインストールしました 、次にsvnsync help
と入力します Bashプロンプトで。 Bashはバイナリ/usr/local/bin/svnsync
を見つけました 「svnsync」の場合は実行しました。次に、/usr/local
にあるSubversionのインストールを削除したとき svnsync help
を再実行しました 、Bashの応答:
bash: /usr/local/bin/svnsync: No such file or directory
しかし、Bashの新しいインスタンスを起動すると、/usr/bin/svnsync
が検出されて実行されます。 。
実行可能ファイルへのパスのキャッシュをクリアするにはどうすればよいですか?
承認された回答:
bash
コマンドへのフルパスをキャッシュします。実行しようとしているコマンドがtype
でハッシュされていることを確認できます コマンド:
$ type svnsync
svnsync is hashed (/usr/local/bin/svnsync)
キャッシュ全体をクリアするには:
$ hash -r
または1つのエントリ:
$ hash -d svnsync
詳細については、help hash
を参照してください。 およびman bash
。