実行可能ファイルへのフルパスを指定せずにプログラムを実行すると、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 。