Wenn Sie zuvor ein Programm in diesem Shell-Aufruf ausgeführt und dann eine andere Version davon in einem früheren Verzeichnis in Ihrer $PATH
Suchliste installiert haben , müssen Sie den Hash zurücksetzen, damit er am neuen Speicherort gefunden wird. Andernfalls wird der Cache verwendet, um das Programm am alten Speicherort zu finden.
Sie müssen den Hash auch zurücksetzen, wenn ein Programm in 2 Verzeichnissen in Ihrem installiert ist $PATH
, und Sie entfernen die Kopie vom früheren Speicherort, nachdem Sie sie ausgeführt haben. Andernfalls wird versucht, es an diesem Speicherort zu finden und "Keine solche Datei oder kein solches Verzeichnis" zu melden (ich persönlich denke, es sollte den Hash automatisch löschen und eine vollständige Suche durchführen, wenn dies passiert, aber es ist nicht passiert, als ich es versucht habe ).
Beachten Sie, dass Sie nicht den gesamten Hash zurücksetzen müssen. Sie können Folgendes verwenden:
hash name
um zu erzwingen, dass der Cache-Eintrag nur für diesen Namen aktualisiert wird, oder:
hash -d name
um nur diesen Cache-Eintrag zu löschen. Diese lassen alle anderen Cache-Einträge in Ruhe.
Sie müssen es hash -r
nach dem Ändern nicht mehr verwenden $PATH
, es wird automatisch zurückgesetzt, wenn dies erledigt ist.