Estoy revisando http://mywiki.wooledge.org/BashGuide/CommandsAndArguments y encontré esto:
$ type rm
rm is hashed (/bin/rm)
$ type cd
cd is a shell builtin
Justo un poco antes, la guía enumeró los diversos tipos de comandos que comprende Bash:alias, funciones, funciones integradas, palabras clave y ejecutables. Pero no se mencionó "hash". Entonces, en este contexto, ¿qué significa "hash"?
Respuesta aceptada:
Es una cuestión de rendimiento; en lugar de buscar el binario en toda la ruta cada vez que se llama, se coloca en una tabla hash para una búsqueda más rápida. Por lo tanto, cualquier binario que ya esté en esta tabla hash se codifica. Si mueve los archivos binarios cuando ya tienen hash, aún intentará llamarlos en su ubicación anterior.