La shell Bash ha un comando integrato hash -r
per reimpostare la $PATH
cache interna per gli eseguibili.
Quando è necessario usare questo comando?
Correlati: Come ridisegnare gli eseguibili in $ PATH con bash
La shell Bash ha un comando integrato hash -r
per reimpostare la $PATH
cache interna per gli eseguibili.
Quando è necessario usare questo comando?
Correlati: Come ridisegnare gli eseguibili in $ PATH con bash
Risposte:
hash
è un comando incorporato bash. La tabella hash è una funzione di bash che gli impedisce di cercare $ PATH ogni volta che si digita un comando memorizzando nella cache i risultati.
Pertanto, quando le informazioni memorizzate nella cache non sono più aggiornate o valide, potrebbe essere necessario ripristinarle.
Leggi di più su questa bella risposta su Unix stackexchange .
Se in precedenza hai eseguito un programma nell'invocazione della shell e ne hai installato un'altra versione in una directory precedente $PATH
nell'elenco di ricerca, devi reimpostare l'hash in modo da trovarlo nella nuova posizione. Altrimenti, utilizzerà la cache per trovare il programma nella vecchia posizione.
È inoltre necessario reimpostare l'hash se un programma è installato in 2 directory nella propria $PATH
e si rimuove la copia dalla posizione precedente dopo averlo eseguito. Altrimenti, proverà a trovarlo in quella posizione e riferirà "Nessun file o directory" (personalmente, penso che dovrebbe cancellare automaticamente l'hash e fare una ricerca completa quando ciò accade, ma non è successo quando ho provato ).
Nota che in realtà non devi reimpostare l'intero hash, puoi usare:
hash name
per forzarlo ad aggiornare la voce della cache solo per quel nome, oppure:
hash -d name
per eliminare solo quella voce della cache. Questi lasciano tutte le altre voci della cache da sole.
Non è necessario utilizzarlo hash -r
dopo la modifica $PATH
, al termine viene ripristinato automaticamente.