Die Bash-Shell verfügt über einen integrierten Befehl hash -r
zum Zurücksetzen des internen $PATH
Caches für ausführbare Dateien.
Wann muss dieser Befehl verwendet werden?
Verwandte: Wie man ausführbare Dateien in $ PATH mit bash erneut aufbereitet
Antworten:
Wenn die zwischengespeicherten / gespeicherten Informationen nicht mehr aktualisiert oder gültig sind, müssen Sie sie möglicherweise zurücksetzen.
Lesen Sie mehr über diese nette Antwort auf Unix Stackexchange .
quelle
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:
um zu erzwingen, dass der Cache-Eintrag nur für diesen Namen aktualisiert wird, oder:
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.quelle