Introduzione
Il locate
command è un'utilità Unix utilizzata per trovare rapidamente file e directory. Il comando è un'alternativa più comoda ed efficiente a trova comando, che è più aggressivo e richiede più tempo per completare la ricerca.
Di fronte a find
, il locate
comando non esegue la ricerca nell'intero filesystem, ma esamina un database di file regolarmente aggiornato nel sistema. Pertanto, la ricerca viene completata molto più velocemente.
In questo tutorial imparerai a installare e utilizzare locate
comando in Linux.
Prerequisiti
- Un sistema che esegue Linux.
- Un account con privilegi di amministratore.
Come installare localizzare
A seconda della distribuzione Linux in uso, locate
il pacchetto potrebbe non essere preinstallato.
Per verificare se locate
è installato, immettere:
locate
Se find
è installato sulla tua distribuzione, il comando stampa il seguente output:
Per questo tutorial, abbiamo utilizzato Ubuntu 20.04, che non viene fornito con locate
utility preinstallata. In questo caso, il messaggio di output è:
Installa locate su Ubuntu e Debian
Segui i passaggi seguenti per installare locate
su Ubuntu o Debian:
1. Aggiorna il repository del pacchetto:
sudo apt update
2. Installa locate
pacchetto eseguendo:
sudo apt install mlocate
Installa locate su CentOS e Fedora
Segui i passaggi seguenti per installare locate
su CentOS o Fedora:
1. Aggiorna il repository del pacchetto:
sudo yum -y update
2. Esegui il comando seguente per installare locate
:
sudo yum install mlocate
Come utilizzare il comando locate in Linux con esempi
Il locate
comando trova i file in Linux usando il nome del file. find
viene utilizzato per ottenere risultati istantanei ed è un'utilità essenziale quando la velocità è una priorità.
Il comando esegue la ricerca utilizzando un database contenente bit di file con i percorsi corrispondenti nel sistema. Tuttavia, locate
non verifica la presenza di file al di fuori del database, il che significa che non segnala i file creati dopo l'ultimo aggiornamento del database.
La sintassi per locate
il comando è:
locate [options] [pattern]
Alcune opzioni utili sono:
Opzione | Descrizione |
---|---|
-A, --all | Visualizza solo le voci che corrispondono a tutti i pattern specificati. |
-b, --basename | Corrisponde solo al nome di base rispetto ai modelli specificati. |
-c, --count | Emette il numero di voci corrispondenti invece dei nomi dei file. |
-d, --database [DBPATH] | Sostituisce il database predefinito con [DBPATH] - un elenco di nomi di file di database separati da due punti. |
-e, --existing | Visualizza solo le voci per i file esistenti. |
-L, --follow | Utilizzare per verificare se esistono file se il --existing l'opzione è specificata. Il --follow opzione omette collegamenti simbolici interrotti. |
-i, --ignore-case | Ignora la distinzione tra maiuscole e minuscole. |
-p, --ignore-spaces | Ignora la punteggiatura e gli spazi durante la corrispondenza dei modelli. |
-t, --transliterate | Utilizza iconv traslitterazione per ignorare accenti e segni diacritici quando si abbinano i modelli. |
-l, --limit, -n [LIMIT] | Utilizzare per uscire correttamente dopo aver trovato un [LIMIT] numero di voci. |
-0, --null | Separa le voci di output utilizzando il ASCII NUL carattere invece di stampare ogni voce in una nuova riga. |
-S, --statistics | Stampa le statistiche su ciascun database letto sull'output standard invece di cercare i file. |
-q, --quiet | Nasconde tutti gli errori riscontrati durante la lettura e l'elaborazione dei database. |
-r, --regexp [REGEXP] | Utilizzato per cercare un'espressione regolare di base [REGEXP] . La specifica di questa opzione non consente [pattern] argomenti. |
-w, --wholename | Corrisponde solo all'intero nome del percorso rispetto ai modelli specificati. |
-h, --help | Visualizza il file della guida con un elenco di tutte le opzioni disponibili. |
Le sezioni seguenti elencano utili esempi di utilizzo di locate
comando.
Cerca un file
Il modo più semplice per utilizzare locate
il comando è quello di inserire il pattern che vuoi cercare.
Ad esempio, cerca tutti i file che contengono mysql pattern nel nome del file eseguendo il comando seguente:
locate mysql
L'output elenca tutti i percorsi assoluti per i file contenenti mysql modello nel nome del file.
Formatta l'output
Quando il risultato della ricerca è un lungo elenco di file, invia tramite pipe locate
comando in less
per una migliore leggibilità e uno scorrimento più semplice.
Ad esempio:
locate mysql | less
Spostati nell'output premendo la Barra spaziatrice per andare avanti, b per invertire, o Q per uscire.
Mostra i file esistenti
Mentre il locate
il comando recupera i risultati quasi istantaneamente, la velocità ha un costo. A volte i file eliminati vengono visualizzati nei risultati a causa del database che locate
reads non è stato aggiornato da quando i file sono stati eliminati. Inoltre, i nuovi file non vengono visualizzati nei risultati se sono stati creati dopo l'ultimo aggiornamento del database.
Elimina queste carenze utilizzando il -e
opzione per cercare nel filesystem e includere solo i file esistenti nei risultati.
Ad esempio:
Nell'esempio sopra, abbiamo prima eliminato un file utilizzando rm
. Ricerca del file con locate
mostra la posizione del file eliminato. Tuttavia, quando si utilizza il -e
opzione, find
non mostra risultati poiché il file è stato rimosso.
Conta i file esistenti
Stampa il numero di file corrispondenti invece dei nomi dei file e dei loro percorsi assoluti specificando il -c
opzione.
Ad esempio:
locate -c mysql
L'output contiene solo il numero di file che contengono mysql stringa nel nome del file. Tutte le altre informazioni vengono eliminate.
Disabilita gli errori durante la ricerca
Il -q
l'opzione indica find
per eliminare eventuali errori che potrebbero apparire durante la lettura di un database.
Nell'esempio seguente, locate
utilizza un database diverso per eseguire la ricerca. Il comando prima segnala che il database non esiste.
Tuttavia, specificando il -q
l'opzione elimina l'errore:
Limita il numero di risultati di ricerca
Limita il numero di risultati di ricerca con il -n
opzione per evitare risultati ridondanti. Ad esempio, limita la ricerca a soli dieci risultati inserendo:
locate *.txt -n 10
L'output mostra solo i primi dieci file che corrispondono al modello di ricerca.
Ignora i file con distinzione tra maiuscole e minuscole
Per impostazione predefinita, find
esegue una ricerca con distinzione tra maiuscole e minuscole durante l'elaborazione della query di input. Istruisci locate
per ignorare la distinzione tra maiuscole e minuscole utilizzando il -i
opzione.
Nell'esempio seguente, abbiamo prima cercato file_esempio in minuscolo e find
non ha mostrato alcun output perché il nome del file contiene lettere maiuscole.
La ricerca del file in maiuscolo mostra la posizione del file:
Eseguendo la stessa ricerca in minuscolo e specificando il -i
l'opzione ignora la distinzione tra maiuscole e minuscole e mostra il file nell'output:
Cerca un file con un nome esatto
Per impostazione predefinita, find
analizza il modello di input come una stringa e mostra tutti i file contenenti il modello di input all'interno del nome file. Ad esempio, cercando mysql mostra tutti i file che contengono mysql string come parte del nome del file, invece dei file il cui nome completo è mysql .
Cerca un file con un nome esatto utilizzando il -r
(espressione regolare) opzione.
Ad esempio:
L'output mostra solo i file il cui nome file corrisponde completamente al modello di input.
Voci di output separate con ASCII NUL
Le voci di output che locate
i prodotti sono separati da una nuova riga (\n
) carattere. Usa il -0
opzione per separare le voci con ASCII NUL
invece del carattere di nuova riga.
Ad esempio:
locate -0 apache
Il separatore predefinito non è più il carattere di nuova riga e le voci sono separate da ASCII NUL
.
Visualizza le statistiche del database
Il locate
Il comando consente di visualizzare varie statistiche del database, incluso il numero di directory e file archiviati nel database. Per visualizzare le statistiche del database, specifica il -S
opzione:
locate -S
L'output indica quale database locate
sta attualmente utilizzando, il numero di directory e file e la dimensione del database in byte.
Aggiorna database di localizzazione
Il database che locate
utilizza gli aggiornamenti automatici ogni giorno alla stessa ora. Per aggiornare manualmente il database e assicurarsi che l'indice del file sia corretto, eseguire il comando seguente:
sudo updatedb
Il completamento del processo di aggiornamento richiede alcuni secondi, a seconda del numero di file nel sistema.
Scegli un database mlocate diverso
Istruisci locate
per utilizzare un database diverso da quello predefinito specificando il -d
opzione. La funzione è utile quando si cercano risultati non presenti nel mlocate
predefinito banca dati.
Per specificare un database diverso, utilizza la seguente sintassi:
locate -d [new database path] [pattern]
Ignora i segni diacritici e le differenze di accento
Il locate
Il comando utilizza lettere normali per la corrispondenza dei risultati, il che significa che i nomi di file contenenti lettere con segni diacritici non vengono visualizzati nei risultati della ricerca. Usa il -t
opzione per istruire locate
ignorare tali differenze tra le lettere e includere i segni diacritici nei risultati.
Ad esempio:
Alla ricerca del nice-cafe pattern non mostra risultati nell'esempio precedente perché il nome del file contiene un segno diacritico. Cercando di nuovo lo stesso pattern e specificando il -t
l'opzione mostra il nice-café di conseguenza il percorso del file, ignorando il segno diacritico nel nome del file.