質問: 実行可能ファイルへのパスのbashのキャッシュをクリアするにはどうすればよいですか? 実行可能ファイルへのフルパスを指定せずにプログラムを実行し、bashが$path内のディレクトリを検索してバイナリを見つける必要がある場合、bashはある種のキャッシュでパスを記憶しているようです。たとえば、subversionのビルドをソースから/usr/localにインストールし、bashプロンプトでsvnsync helpと入力しました。 bashは「svnsync」のバイナリ/usr/local/bin/svnsyncを見つけて実行しました。次に、/usr/localのsubversionのインストールを削除してsvnsync helpを再実行すると、bashが応答します。bash: /usr/local/bin/svnsync: no such file or directory しかし、bashの新しいインスタンスを開始すると、/usr/bin/svnsyncが検出されて実行されます。実行可能ファイルへのパスのキャッシュをクリアするにはどうすればよいですか?
回答: 1つのエントリだけをクリアするには、別のフラグが必要です。hash -d svnsync -rフラグはパラメーターをとらず、常にキャッシュ全体を削除します。 (少なくともdebian lennyのbash 3.2.39で)