Introduzione

In questo tutorial, tratteremo il comando which su Linux .

Il comando which su Linux viene utilizzato per identificare la posizione di un determinato eseguibile che viene eseguito quando si digita il nome dell'eseguibile (comando) nel prompt del terminale. Il comando cerca il file eseguibile specificato come argomento nelle directory elencate nella variabile di ambiente PATH.

Cos'è il PATH

In Linux, PATH è una variabile ambientale che indica alla shell e ad altri programmi quali directory cercare i file eseguibili. Consiste in un elenco di percorsi assoluti separati da due punti per le directory contenenti gli eseguibili.

Per visualizzare il contenuto della variabile PATH, utilizzare il comando echo con $PATH come argomento:

echo $PATH

L'output sarà simile al seguente:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Come utilizzare il comando which

La sintassi per il comando which è la seguente:

which [OPTIONS] FILE_NAME...

Ad esempio, per trovare il percorso completo del comando ping, digitare quanto segue:

which ping

L'output sarà qualcosa del genere:

/bin/ping

È inoltre possibile fornire più di un argomento al comando which:

which netcat uptime

L'output includerà percorsi completi verso entrambi gli eseguibili netcat e uptime:

/bin/netcat
/usr/bin/uptime

La ricerca viene eseguita da sinistra a destra e se viene trovata più di una corrispondenza nelle directory elencate nella variabile percorso PATH, which stamperà solo la prima. Per stampare tutte le corrispondenze, utilizzare l'opzione -a:

which -a touch

L'output mostrerà due percorsi completi per il comando touch:

/usr/bin/touch
/bin/touch

Di solito uno degli eseguibili è solo uno symlink (link simbolico) rispetto all'altro, ma in alcuni casi potresti avere due versioni dello stesso comando installate in posizioni diverse o comandi totalmente diversi usando lo stesso nome.

Conclusione

Il comando which viene utilizzato per individuare un comando cercando il comando eseguibile nelle directory specificate dalla variabile ambientale PATH.