No use which
, uso type
. El which
comando en el shell por defecto (bash) es un utilidad que no sabe acerca de los alias y funciones. Por otro lado, type
es una interna de la utilidad que le dirá si su argumento es un alias, una función, una utilidad integrada o un comando externo.
El which
comando se menciona en tutoriales y manuales sólo por razones históricas - hace 30 años el type
comando no existe en todas partes, y algunas personas han sido lentos para adaptarse.
Para más detalles, incluyendo un análisis histórico y actual de las conchas, consulte ¿por Qué no usar "que"? Qué usar entonces?
$ type cp
cp is aliased to `cp -i'
$ type mkcd
mkcd is a function
mkcd ()
{
…
}
$ type type
type is a shell builtin
$ type cat
cat is /bin/cat
En zsh, es aceptar el uso de which
: zsh tiene tanto type
y which
como comandos integrados.
También tenga en cuenta que si usted acaba de instalar o quitar un programa, el shell puede tener memorizado su antigua ubicación. Por ejemplo, si usted acaba de instalar su propia versión de un programa en un directorio que está por delante de los directorios del sistema en $PATH
, el shell puede mantener invocar el programa que viene con el sistema. Esto es sólo un problema en los proyectiles que ya estaban funcionando en el momento de la instalación o eliminación. Para actualizar la concha de la memoria con los datos actuales, ejecute el comando hash -r
o hash COMMANDNAME
.