Solo sé de dos maneras: alias foo=bar
y function foo() { bar }
.
La razón por la que pregunto es que, de repente en una de mis sesiones de bash, no puedo ejecutar el ln
comando porque se bash
está produciendo un error con -bash: /usr/local/.../ln: No such file or directory
(donde /usr/local/.../
es una de las entradas en mi PATH
variable de entorno).
Sin PATH
embargo, no es un problema, porque si ejecuto which ln
genera el binario esperado de /usr/bin/ln
(que puedo ejecutar bien si especifico la ruta absoluta).
También verifiqué ln
en mi alias
y function
declaraciones, y no hay nada:
$ declare -f | grep ln
$ alias | grep ln
El problema solo ocurre en una sesión bash. Si inicio un nuevo shell, vuelve a funcionar bien, pero quiero saber qué causó este problema de repente en esta sesión particular de bash.
¿Alguna idea de lo que podría estar causando esto?
type ln
me saleln is hashed (/usr/local/.../ln)
cuál parece ser el problema, pero ¿qué significa exactamente que es "hash"? Nunca he oído hablar de esa característica en bash.hash -l
comando. Se construye dinámicamente a medida que usa los comandos.hash -r
para restablecer la tabla hash de comando a ruta, y ahoraln
vuelvo a funcionar.