Bash Shell tiene un comando incorporado hash -r
para restablecer la $PATH
memoria caché interna de los ejecutables.
¿Cuándo es necesario usar este comando?
Relacionado: Cómo repetir ejecutables en $ PATH con bash
Bash Shell tiene un comando incorporado hash -r
para restablecer la $PATH
memoria caché interna de los ejecutables.
¿Cuándo es necesario usar este comando?
Relacionado: Cómo repetir ejecutables en $ PATH con bash
Respuestas:
hash
es un comando incorporado bash. La tabla hash es una característica de bash que evita que tenga que buscar $ PATH cada vez que escribe un comando almacenando en caché los resultados en la memoria.
Por lo tanto, cuando la información almacenada / en caché ya no se actualice o sea válida, es posible que deba restablecerla.
Lea más sobre esta buena respuesta en Unix stackexchange .
Si anteriormente ha ejecutado un programa en esa invocación de shell y luego instala otra versión de él en un directorio anterior en su $PATH
lista de búsqueda, debe restablecer el hash para que lo encuentre en la nueva ubicación. De lo contrario, usará el caché para encontrar el programa en la ubicación anterior.
También debe restablecer el hash si un programa está instalado en 2 directorios en su $PATH
, y elimina la copia de la ubicación anterior después de haberlo ejecutado. De lo contrario, intentará encontrarlo en esa ubicación e informará "No existe tal archivo o directorio" (personalmente, creo que debería borrar automáticamente el hash y hacer una búsqueda completa cuando eso suceda, pero no sucedió cuando lo intenté )
Tenga en cuenta que en realidad no tiene que restablecer todo el hash, puede usar:
hash name
para forzarlo a actualizar la entrada de caché solo para ese nombre, o:
hash -d name
para eliminar solo esa entrada de caché. Estos dejan todas las demás entradas de caché en paz.
No es necesario usar hash -r
después de modificar $PATH
, se restablece automáticamente cuando se hace esto.