In Linux, ci sono molti strumenti per trovare e localizzare file e directory. Dall'esperienza precedente, abbiamo visto che alcuni di questi strumenti erano molto fluidi su larga scala e alcuni di questi strumenti erano un po' più lenti, ma avevano una grande scala da coprire nella directory. In precedenza, abbiamo visto come utilizzare il comando fd e il comando find in Linux per trovare un file. Invece di avere i comandi fd o find, possiamo usare il comando locate su Linux per cercare in modo rapido ed efficiente un file con parametri specifici.
La principale differenza tra il comando fd e il comando locate è che il comando locate può trovare rapidamente i file nella directory perché utilizza un database speciale per la ricerca delle query.
Nei sistemi basati su Linux e Unix, il comando locate usa il database mlocate, o unire il database locate per la ricerca nell'intero sistema. Il comando locate è stato rilasciato per la prima volta nel 1982 su macchine BSD e GNU con licenza GNU privacy.
Come funziona il comando di localizzazione?
Il metodo di lavoro del comando locate su Linux è molto convenzionale e di facile comprensione. Utilizza un database sul sistema che memorizza i percorsi collegati all'intero file system. Quando eseguiamo il comando locate, colpisce il database e cerca il risultato. Il comando locate usa il database updateb o mlocate per memorizzare tutti i cercatori ei percorsi.
Poiché locate usa il percorso e i collegamenti per trovare gli elementi, questo è ciò che rende il comando locate più veloce. Se hai bisogno di apportare modifiche o ripristinare il tuo DB mlocate, puoi accedere al file di configurazione dalla directory sotto indicata.
/var/lib/mlocate/mlocate.db
Normalmente il mlocate database viene aggiornato automaticamente ogni volta che eseguiamo un comando locate sul sistema Linux. Tuttavia, in alcuni casi, quando si elimina un file o si aggiunge un nuovo file al sistema, il database potrebbe non ricevere immediatamente i dati del sistema. In tal caso, puoi aggiornare manualmente il database mlocate sul tuo sistema Linux per individuare i comandi più potenti.
Puoi anche aggiornare updatedb configurazione tramite uno script.
- -# cat /etc/updatedb.conf PRUNE_BIND_MOUNTS="yes" PRUNENAMES=".git .bzr .hg .svn" PRUNEPATHS="/tmp /var/spool /media" PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"
Installa locate sul sistema
Al giorno d'oggi, in tutte le principali distribuzioni, il comando locate viene preinstallato con il sistema Linux. Se non riesci a trovare il comando locate sul tuo sistema, puoi installarlo sul tuo computer e iniziare con esso.
Il metodo di installazione del comando locate su un sistema Linux è semplice. Il pacchetto è già archiviato nel repository ufficiale di Linux, quindi possiamo installarlo tramite il commento aptitude su Debian Linux e il comando DNF o Yum su sistemi Redhat o Fedora Linux.
Prima di eseguire i comandi di installazione, è possibile verificare se il comando locate è installato o meno sul sistema. Per verificare, puoi semplicemente digitare trova e premi il pulsante Invio sulla shell del tuo terminale. Se ottieni le informazioni sulla versione o sullo stato, lo strumento è installato sul tuo sistema.
Come puoi vedere nell'immagine sottostante, lo strumento di localizzazione non è installato, quindi eseguiremo ora i comandi di installazione.
$ locate
Esegui i comandi indicati di seguito sul tuo Ubuntu o Linux basato su Debian per installare lo strumento di localizzazione sul tuo sistema.
sudo apt update sudo apt install mlocate
Se stai usando Fedora basato su Yum e un sistema Redhat Linux, puoi eseguire il set di comandi menzionato di seguito per ottenere lo strumento di localizzazione.
sudo yum -y update sudo yum install mlocate
Esempi di comandi di localizzazione
In questo post, vedremo alcuni esempi di vita reale utili e pratici che dovresti esaminare e imparare. Il comando locate funziona senza problemi con tutte le principali distribuzioni Linux sia su desktop che su server.
1. Cerca un file
Il primo esempio che vedremo sul comando locate è come possiamo cercare un file nell'intero file system tramite il comando locate. Questo comando tornerà con tutti i file MySQL che abbiamo nell'intero sistema.
locate mysql
2. Formatta l'output
Ora, se vuoi filtrare il comando sopra menzionato, possiamo usare less sintassi con il simbolo pipe. Avremmo anche potuto usare il comando GREP per ordinare o filtrare l'output.
locate mysql | less
3. Mostra i file esistenti
Come accennato in precedenza, a volte il comando locate non eliminerebbe il file oi dati che abbiamo appena eliminato dal sistema Linux o che abbiamo appena aggiunto al file system. Quindi, per ottenere il valore appropriato, possiamo usare un -e
flag con il comando locate per eliminare i file che sono già stati cancellati.
Ad esempio, qui ho eseguito un rm comando per rimuovere un file dal sistema. Ora, se eseguo il comando locate su Linux in modo convenzionale, mi darà il risultato che il file esiste ancora sul sistema. Ma se eseguiamo il commento locate con un flag -e, ricaricherà immediatamente il database locate e aggiornerà l'output.
rm file1.txt locate file1.txt locate -e file1.txt
4. Conta i file esistenti
Il comando locate può anche fornire un output di quanti file sono presenti nel sistema per una query specifica.
locate -c mysql
5. Disattiva gli errori durante la ricerca
Molte volte quando troviamo un elemento tramite il comando locate e commettiamo errori nel percorso o nella sintassi, ci restituisce un messaggio di errore. Se vogliamo nascondere il messaggio di errore, possiamo aggiungere un ulteriore -q
flag alla fine del comando per disabilitare gli errori durante la ricerca.
locate -d ~/Documents/database.db hello locate -d ~/Documents/database.db hello -q
6. Limita il numero di risultati di ricerca
Possiamo anche impostare un limite per il comando locate per mostrare i risultati della ricerca. Il comando locate sotto menzionato mostrerà solo dieci risultati per la query per trovare il .txt file nel file system.
locate *.txt -n 10
7. Ignora i file con distinzione tra maiuscole e minuscole
Per impostazione predefinita, il comando locate fa distinzione tra maiuscole e minuscole in Linux, ma puoi disabilitarlo sul tuo sistema. Per disabilitare la distinzione tra maiuscole e minuscole del comando locate, possiamo usare un -i
flag nel comando.
$ locate file1.txt $ locate FILE1.TXT $ locate -i FILE1.TXT
8. Cerca un file con un nome esatto
Se vogliamo cercare un file con un nome esatto, possiamo usare il -r
flag nel comando locate in Linux. Nel comando sotto menzionato, il $
sign viene utilizzato come espressione per indicare che la sessione è terminata e il segno barra (/) è un simbolo dei limiti del comando.
locate -r /file404_UbuntuPIT.txt$
9. Voci di output separate con ASCII NUL
Normalmente, in Linux, il comando locate stampa l'output con un'interruzione di riga, ma se vogliamo, possiamo rimuovere lo spazio dall'output e stampare l'output con un ASCII null.
locate -0 apache
10. Visualizza le statistiche del database
Oltre a cercare i file, possiamo anche visualizzare la struttura del database per una query specifica sul sistema con un segno -s sul comando locate su Linux.
locate -S
11. Aggiorna database mlocate
Se dobbiamo aggiornare manualmente il database del comando locate sul nostro sistema Linux, possiamo eseguire il seguente comando con sudo access.
sudo updatedb
12. Scegli un database mlocate diverso
In caso di problemi durante la ricerca di una query, potrebbe essersi verificato un problema con il database di localizzazione. Il comando locate utilizza il database mlocate per impostazione predefinita; puoi anche passare da un database all'altro per il comando locate.
default mlocate database locate -d [new database path] [pattern]
13. Ignora i segni diacritici e le differenze di accento
In alcuni casi, potresti aver usato un alfabeto greco o romano nel nome del tuo file e durante la ricerca in quel file potresti aver usato un alfabeto normale invece di quell'alfabeto speciale. In tal caso, il comando locate non restituirà alcun output. Per evitare questo problema e ignorare i segni diacritici e le differenze di accento, puoi utilizzare un -t
flag nel tuo comando.
locate My_new_image_ca.jpeg locate -t My_new_image_ca.jpeg
14. Solo visualizzazione Presente File nel tuo sistema
Ho accennato in precedenza che il comando locate a volte restituisce i file eliminati sull'output. Ci sono modi che ti permetteranno di evitare quei file che non sono fisicamente presenti sul tuo sistema e sono già eliminati. Puoi visualizzare solo quei file che sono presenti sul tuo sistema usando un -i
e un -e
flag sul comando locate in Linux.
locate -i -e *text.txt*
15. Cerca tipi di file specifici
Puoi cercare un tipo specifico di file nel tuo sistema Linux tramite il comando locate. Ad esempio, i comandi indicati di seguito mostrano come cercare file di testo e immagini jpeg nel sistema tramite il comando locate.
locate -c “*.txt*” locate -c “*.jpg*”
Le ultime parole
Nell'intero post, abbiamo visto come funziona il comando locate e il suo tipo di database e operazione per fornire un risultato di ricerca efficiente. Abbiamo esaminato alcuni esempi potenti e più utilizzati del comando locate.
Spero che questo post ti sia stato utile; se sì, condividi questo post con i tuoi amici e la comunità Linux. Puoi anche farci sapere quale strumento ritieni più utile per trovare i file sul tuo sistema.