Come suggerisce il nome, il comando locate in Linux viene usato per localizzare (cercare) un file. Ha la seguente sintassi:
locate [options] filename
Sebbene sia davvero semplice usare il comando locate, viene fornito con molti se e ma. Per cominciare, se non trova un file, non significa necessariamente che il file non esiste sul sistema.
Non essere confuso proprio ora. Spiegherò come funziona il comando locate e come puoi usarlo per trovare file.
Utilizzo del comando locate in Linux
Il comando locate funziona su un indice, ovvero un database di percorsi di file. Quando usi il comando, fa riferimento a questo indice invece di cercare nell'intero filesystem. Questo è il motivo per cui locate è super veloce nel trovare i file in Linux.
Alcune distribuzioni Linux indicizzano automaticamente l'intero filesystem su base regolare. Puoi anche creare manualmente questo indice (te lo mostrerò più avanti in questo articolo).
Usare il comando locate è semplicissimo. Devi solo specificare il nome del file:
locate filename
Il risultato mostrerà tutte le posizioni in cui è stato trovato il file specificato.
[email protected]:~$ locate desktop.iso
/home/abhishek/desktop.iso
La parte migliore è che non è necessario trovarsi in una determinata directory per trovare il file. Ricorda, il comando locate non cerca nel filesystem ma nell'indice. Questo è il motivo per cui non è necessario specificare un percorso o una directory durante la ricerca di file.
Puoi anche eseguire una ricerca senza distinzione tra maiuscole e minuscole utilizzando l'opzione -i:
[email protected]:~$ locate -i desktop.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Tieni presente che il risultato potrebbe mostrare tutti i file che hanno il termine di ricerca nel loro nome.
[email protected]:~$ locate -i desktop
/home/abhishek/eoan-desktop-amd64.iso
/home/abhishek/Bionic-Desktop-amd64.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Puoi anche usare regex con locate:
locate -r regex_expression
Utilizzo di updateb per creare il proprio indice per il comando locate
Questo è solo a scopo informativo e non credo che avresti bisogno di usarlo.
Se vuoi creare un indice della directory attuale (e delle sue sottodirectory), puoi usare il comando updateb in questo modo:
updatedb -l0 -U my_directory -o index_file
Dopo aver creato questo file di indice, puoi chiedere al comando locate di utilizzare esplicitamente questo indice:
locate -d index_file file_name
Localizza è migliore del comando trova?
Se vuoi cercare file in una struttura di directory che non cambia molto, il comando locate è una buona opzione. È anche super veloce.
Ma il comando trova ti offre molte opzioni, specialmente per eseguire opzioni di ricerca complesse.
Entrambi i comandi hanno il loro utilizzo. A mio parere, se ti senti pigro e desideri un risultato rapido, usa locate. Se il risultato non è di tuo gradimento, passa al comando trova.
Cosa ne pensi?