Si está usando Bash o zsh, use esto:
type -a lshw
Esto mostrará si el objetivo es una función integrada, un alias o un ejecutable externo. Si es lo último, mostrará cada lugar en el que aparece en su PATH
.
bash$ type -a lshw
lshw is /usr/bin/lshw
bash$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
bash$ zsh
zsh% type -a which
which is a shell builtin
which is /usr/bin/which
En Bash, para funciones type -a
también mostrará la definición de la función. Puedes usar declare -f functionname
para hacer lo mismo (tienes que usar eso para zsh, ya que type -a
no lo hace).
Así:
which lshw
Para ver todos los comandos que coinciden en su ruta:
which -a lshw
PATH
es una variable de entorno y se puede mostrar con el comando echo:
echo $PATH
Es una lista de rutas separadas por el carácter de dos puntos ':
'
El which
El comando le dice qué archivo se ejecuta cuando ejecuta un comando:
which lshw
a veces lo que obtienes es una ruta a un enlace simbólico; si desea rastrear ese enlace hasta donde se encuentra el ejecutable real, puede usar readlink
y alimentarlo con la salida de which
:
readlink -f $(which lshw)
El -f
el parámetro instruye readlink
para seguir siguiendo el enlace simbólico de forma recursiva.
Aquí hay un ejemplo de mi máquina:
$ which firefox
/usr/bin/firefox
$ readlink -f $(which firefox)
/usr/lib/firefox-3.6.3/firefox.sh