whichtrova l'eseguibile binario del programma (se presente nel PERCORSO). man whichspiega più chiaramente:
che restituisce i percorsi dei file (o collegamenti) che verrebbero eseguiti nell'ambiente attuale, se i suoi argomenti fossero dati come comandi in una shell strettamente conforme a POSIX. Lo fa cercando nel PERCORSO i file eseguibili che corrispondono ai nomi degli argomenti. Non segue collegamenti simbolici.
whereistrova i file binari, di origine e della pagina man per un programma. Per esempio
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
È possibile ottenere ulteriori dettagli passando l'output di questi comandi come argomenti a ls -lofile
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locateinfatti trova tutti i file che hanno il modello specificato ovunque nei loro percorsi. Puoi dirlo per trovare solo file e directory i cui nomi (piuttosto che percorsi completi) includono il modello con l' -bopzione, che di solito è quello che vuoi, e fornisce un elenco meno ingombrante.
locateè veloce perché utilizza un database binario che viene periodicamente aggiornato (una volta al giorno, da cron). Puoi aggiornarlo tu stesso per assicurarti che i file aggiunti di recente vengano trovati eseguendosudo updatedb
Ancora una cosa locate: non importa se i file esistono ancora o meno, quindi per evitare di trovare file eliminati di recente, utilizzare -e. Spesso faccio pipa anche lessperché l'elenco può essere lungo. In genere faccio:
sudo updatedb && locate -b -e gimp | less
Il modo in cui funziona il dash di Unity è spiegato qui : utilizza Zeitgeist per indicizzare i file di sistema e apprendere dai modelli di utilizzo e consente ad altre applicazioni di utilizzare questi dati, quindi sta facendo molto più lavoro di locate.
type? : P