Se stai usando Bash o zsh, usa questo:
type -a lshw
Questo mostrerà se il target è un builtin, una funzione, un alias o un eseguibile esterno. In quest'ultimo caso, mostrerà ogni luogo in cui appare nel tuo 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
In Bash, per le funzioni type -a
visualizzerà anche la definizione della funzione. Puoi usare declare -f functionname
per fare la stessa cosa (devi usarlo per zsh, poiché type -a
non).
In questo modo:
which lshw
Per vedere tutti i comandi che corrispondono nel tuo percorso:
which -a lshw
PATH
è una variabile d'ambiente e può essere visualizzata con il comando echo:
echo $PATH
È un elenco di percorsi separati dal carattere due punti ':
'
Il which
command ti dice quale file viene eseguito quando esegui un comando:
which lshw
a volte ciò che ottieni è un percorso verso un collegamento simbolico; se vuoi tracciare quel collegamento a dove si trova l'eseguibile effettivo, puoi usare readlink
e forniscigli l'output di which
:
readlink -f $(which lshw)
Il -f
parametro istruisce readlink
per continuare a seguire il collegamento simbolico in modo ricorsivo.
Ecco un esempio dalla mia macchina:
$ which firefox
/usr/bin/firefox
$ readlink -f $(which firefox)
/usr/lib/firefox-3.6.3/firefox.sh