これは重複していないことに注意してください。キャッシュをクリアするのではなく、キャッシュを無効にすることを求めています。クリアするキャッシュがある場合、それは明らかに無効ではありません。
まれに、bashがパスで見つけたもののキャッシュに気づく場合があります。それは、それが役に立ったからではなく、流血の迷惑なためです。例:
~ dc$ export PATH=$HOME/bin:$PATH
~ dc$ cat bin/which
#!/bin/bash
echo "my which"
~ dc$ which
my which
~ dc$ rm bin/which
~ dc$ which which
-bash: /Users/dc/bin/which: No such file or directory
別のシェルで...
~ dc$ which which
/usr/bin/which
このキャッシングは、ディスクが遅く、メモリが高価で制限されていたため、あまりキャッシュできなかった古き良き時代には理にかなっていると思います-パスをキャッシュすることは、コマンドを見つけるために必要なすべてのディスクブロックをキャッシュするよりも安価です。 。しかし、最近では目立った利点はなく、解決する以上の問題を引き起こしています。バグであることをあきらめて、それは間違った機能です。
そして、それを無効にする方法すら見つけられません。ポインタはありますか?
@drhyde、ごめんなさい。この質問を重複としてマークしました。
—
Evgeny Vereshchagin 2015
set +hハッシュを無効にするために使用します。
Nixosでは、bashでハッシュを無効にしました。ニクソスの働き方のおかげで、それはもっともな理由だと思います。ただし、これがNixosにとって本当に必須かどうかはわかりません。私が言っているのは、bashのハッシュは特定の状況で問題を引き起こす可能性があるということです。
—
typelogic
/usr/bin完全にキャッシュに残っているRAMがそれほど多くない場合、デスクトップマシンの一般的なケースであっても、その利点は顕著です。