Beachten Sie, dass dies kein Duplikat ist. Ich frage nach dem Deaktivieren des Caches, nicht nach dem Löschen. Wenn Sie einen Cache löschen müssen, ist dieser offensichtlich nicht deaktiviert.
In den seltenen Fällen, in denen ich Bashs Cache mit Dingen bemerke, die er im Pfad gefunden hat, liegt es nicht daran, dass es hilfreich ist, sondern daran, dass es verdammt nervig ist. Ein Beispiel:
~ 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
In einer anderen Hülle ...
~ dc$ which which
/usr/bin/which
Ich bin mir sicher, dass dieses Caching in den guten alten Zeiten Sinn machte, als die Festplatten langsam und der Speicher teuer und begrenzt waren und Sie daher nicht viel zwischenspeichern konnten. Das Zwischenspeichern eines Pfads ist billiger als das Zwischenspeichern aller Festplattenblöcke, die zum Auffinden eines Befehls erforderlich sind . Aber heutzutage bietet es keinen spürbaren Nutzen und verursacht mehr Probleme als es löst. Es ist eine Fehlfunktion, die fast ein Fehler ist.
Und ich kann nicht einmal einen Weg finden, es zu deaktivieren. Irgendwelche Hinweise?
set +h
diese Option, um das Hashing zu deaktivieren.
/usr/bin
vollständig im Cache verbleibt.