Introduzione
 Il which  Il comando consente agli utenti di cercare nell'elenco dei percorsi nel $PATH  variabile di ambiente e restituisce il percorso completo del comando specificato come argomento. Il comando funziona individuando il file eseguibile che corrisponde al comando dato.
 In questo tutorial imparerai a usare il which comando. 
 
 Prerequisiti
- Un sistema che esegue Linux
- Accesso al terminale (Ctrl + Alt + T )
Linux con sintassi dei comandi e opzioni
 La sintassi per il which  il comando è:
which -a [argument]Argomenti
 Il [argument]  variabile specifica il comando oi comandi che vuoi trovare.
Ad esempio, il comando seguente restituisce la posizione del comando cat:
which cat 
 Opzioni
 Il which  comando ha una sola opzione, -a  . È facoltativo e viene utilizzato per stampare tutte le corrispondenze che trova.
 Il comando cerca le corrispondenze da sinistra a destra. Se sono presenti più corrispondenze nelle directory elencate in $PATH  , which  stampa solo il primo. Il -a  l'opzione indica which  per stampare tutte le corrispondenze.
 Importante: Su molte distribuzioni Linux, which  esclude i comandi incorporati della shell e non restituisce la loro posizione.
Ad esempio:
which -a touch 
 Avere più corrispondenze a volte significa che una corrispondenza è un collegamento simbolico all'altra. Tuttavia, è possibile avere due versioni dello stesso comando in posizioni diverse o due comandi diversi che utilizzano lo stesso nome.
 Nota: A differenza di molti altri comandi, which  non ha --help  opzione. Per vedere la descrizione del comando e la guida, esegui man which  .
Stato di uscita
 Il which  comando restituisce uno dei seguenti valori che ne indicano lo stato di uscita:
- 0. Tutti gli argomenti sono stati trovati ed eseguibili.
- 1. Uno o più argomenti non esistono o non sono eseguibili.
- 2. È stata specificata un'opzione non valida.
Linux quali esempi di comandi
 Gli esempi seguenti mostrano come il which  il comando funziona e come utilizzare l'opzione disponibile.
1. Visualizza il percorso di qualsiasi file eseguibile
 Per visualizzare il percorso di qualsiasi comando, passa il nome del comando come argomento dopo which  .
Ad esempio:
which tr 
 L'output mostra il percorso del file eseguibile del comando tr, che si trova in /usr/bin/tr .
2. Visualizza percorsi multipli di file eseguibili
 which  accetta più argomenti e restituisce il percorso a ciascuno nell'ordine specificato.
Ad esempio:
which nc mount sort 
 Il comando funziona attraverso l'elenco fornito e restituisce i risultati per il comando nc, il comando mount e il comando sort, separando ogni risultato con un carattere di nuova riga.
3. Elenca tutte le istanze
 which  mostra solo la prima corrispondenza trovata nel $PATH  elenco di directory variabili. Usa il -a  opzione per mostrare ogni corrispondenza per il comando specificato.
 Ad esempio, la ricerca di istanze del comando less genera due risultati quando si utilizza il -a  opzione:
which -a less 
 Utilizzare il comando ls per controllare i dettagli del file e determinare se entrambe le versioni sono file eseguibili. Corri:
ls -lh /usr/bin/less
ls -lh /bin/less 
 L'output mostra due versioni identiche dello stesso comando in due posizioni, entrambe grandi 176 KB ed entrambe eseguibili.
Nota: Il /bin contiene eseguibili che possono essere utilizzati dall'amministratore di sistema e da qualsiasi altro utente e che sono necessari per le riparazioni di emergenza del sistema. Il /usr/bin directory è la directory principale per i comandi eseguibili sul sistema.
4. Trova collegamenti simbolici
 Utilizzando il -a  opzione elenca tutti i percorsi che contengono un'istanza del programma specificato. Sebbene su un sistema possano esistere più versioni dello stesso programma, a volte una delle istanze è solo un collegamento simbolico e non un file binario.
Ad esempio, l'esecuzione del comando seguente genera due istanze del comando atq:
which -a atq 
 
 Ancora una volta, usa il ls  comando per controllare i dettagli di entrambi i file. Corri:
ls -lh /usr/bin/atq
ls -lh /bin/atq 
 
 L'output mostra che entrambi i file sono collegamenti simbolici (->  ) solo 2 byte grandi e che puntano al comando at.
5. Escludi Shell Built-in
 Come accennato in precedenza, il which  comando esclude i built-in della shell dal suo output. 
 Ad esempio, chiedendo la posizione dei comandi read e man si ottiene solo la posizione per il man  file eseguibile del comando, come read  è un comando della shell bash.
which read man 
 Conclusione
 Questo tutorial ha mostrato come utilizzare il which  comando in Linux per trovare il percorso del binario eseguibile di un comando. Consulta e scarica il nostro cheat sheet dei comandi Linux per altri comandi Linux essenziali ed esempi di utilizzo.