which
trova l'eseguibile binario del programma (se presente nel PERCORSO). man which
spiega 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.
whereis
trova 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 -l
ofile
$ 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
locate
infatti 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' -b
opzione, 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 less
perché 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