Important Linux Commands for Beginners: Linux Tutorial
Sommario:
- Installazione di
locate
(comando di individuazione non trovato) - Installa
locate
su Ubuntu e Debian - Installa
locate
su CentOS e Fedora - Come funziona?
- Come utilizzare il comando
locate
- Conclusione
Una delle operazioni più comuni quando si lavora su Linux è la ricerca di file e directory. Sui sistemi Linux, ci sono diversi comandi che ti consentono di cercare i file con
find
e
locate
i più utilizzati.
Il comando
locate
è il modo più rapido e semplice per cercare file e directory con i loro nomi.
In questo tutorial, spiegheremo come usare il comando
locate
.
Installazione di
locate
(comando di individuazione non trovato)
A seconda della distribuzione e del modo in cui è stato eseguito il provisioning del sistema, il pacchetto di localizzazione può o meno essere preinstallato sul proprio sistema Linux.
Per verificare se l'utilità di
locate
è installata sul tuo sistema, apri il tuo terminale, digita
locate
e premi
Enter
. Se il pacchetto è installato, il sistema mostrerà
locate: no pattern to search for specified
, altrimenti vedrai qualcosa come il
locate command not found
.
Se
locate
non è installato, puoi installarlo facilmente usando il gestore pacchetti della tua distribuzione.
Installa
locate
su Ubuntu e Debian
sudo apt update
sudo apt install mlocate
Installa
locate
su CentOS e Fedora
Come funziona?
Il comando
locate
cerca un determinato modello attraverso un file di database generato dal comando
updatedb
. I risultati trovati vengono visualizzati sullo schermo, uno per riga.
Durante l'installazione del pacchetto mlocate, viene creato un processo cron che esegue il comando
updatedb
ogni 24 ore. Questo assicura che il database sia aggiornato regolarmente. Per ulteriori informazioni sul processo cron, consultare il file
/etc/cron.daily/mlocate
.
Il database può essere aggiornato manualmente eseguendo il comando
updatedb
come root o utente con privilegi sudo:
sudo updatedb
Il processo di aggiornamento richiederà del tempo, a seconda del numero di file e directory e della velocità del sistema.
I file creati dopo l'aggiornamento del database non verranno visualizzati nei risultati di individuazione.
Rispetto al più potente comando di ricerca che cerca nel file system,
locate
funziona molto più velocemente ma manca di molte funzionalità e può cercare solo con il nome del file.
Come utilizzare il comando
locate
La sintassi per il comando
locate
è la seguente:
locate PATTERN…
Nella sua forma più semplice, se usato senza alcuna opzione il comando
locate
stamperà il percorso assoluto di tutti i file e le directory che corrispondono al modello di ricerca e per i quali l'utente ha il permesso di lettura.
Ad esempio, per cercare un file chiamato
.bashrc
, digitare:
locate.bashrc
L'output includerà i nomi di tutti i file contenenti la stringa
.bashrc
nei loro nomi:
/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
Il file
/root/.bashrc
non verrà mostrato perché abbiamo eseguito il comando come utente normale che non dispone delle autorizzazioni di accesso alla directory
/root
.
Se l'elenco dei risultati è lungo, per una migliore leggibilità è possibile reindirizzare l'output al comando
less
:
locate.bashrc | less
Il comando
locate
accetta anche pattern contenenti caratteri globbing come il carattere jolly
*
. Quando il modello non contiene caratteri di globbing, il comando cerca
*PATTERN*
, ecco perché nell'esempio precedente sono stati visualizzati tutti i file che contengono il modello di ricerca nei loro nomi.
Il carattere jolly è un simbolo utilizzato per rappresentare zero, uno o più caratteri. Ad esempio, per cercare tutti i file
.md
sul sistema dovresti usare:
locate *.md
Per limitare i risultati della ricerca, utilizzare l'opzione
-n
seguita dal numero di risultati che si desidera visualizzare. Ad esempio, il comando seguente cercherà tutti i file
.py
e mostrerà solo 10 risultati:
locate -n 10 *.py
Per impostazione predefinita,
locate
esegue ricerche con distinzione tra maiuscole e minuscole. L'opzione
-i
(
--ignore-case
) consente di
locate
per ignorare il caso ed eseguire la ricerca senza distinzione tra maiuscole e minuscole.
locate -i readme.md
/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md
Per visualizzare il conteggio di tutte le voci corrispondenti, utilizzare l'opzione
-c
(
--count
). Il seguente comando restituirebbe il numero di tutti i file contenenti
.bashrc
nei loro nomi:
locate -c.bashrc
6
Per impostazione predefinita,
locate
non controlla se i file trovati esistono ancora nel file system. Se un file è stato eliminato dopo l'ultimo aggiornamento del database se il file corrisponde al modello di ricerca, verrà incluso nei risultati della ricerca.
Per visualizzare solo i nomi dei file esistenti al momento dell'esecuzione di
locate
utilizzare l'opzione
-e
(
--existing
). Ad esempio, quanto segue restituirebbe solo i file
.json
esistenti:
locate -e *.json
locate --regex -i "(.mp4|\.avi)"
Conclusione
Il comando
locate
cerca nel file system i file e le directory il cui nome corrisponde a un determinato modello. La sintassi del comando è facile da ricordare e i risultati sono mostrati quasi istantaneamente.
Per ulteriori informazioni su tutte le opzioni disponibili del tipo di comando
man locate
nel terminale.
Cogli la riga di comando con il comando Take

Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Trova file di grandi dimensioni in Linux

Nel tempo, l'unità disco potrebbe essere ingombra di molti file non necessari che occupano grandi quantità di spazio su disco. Questo tutorial spiega come trovare i file e le directory più grandi nei sistemi Linux usando i comandi find e du.
Comando grep in linux (trova testo nei file)

Grep è uno dei comandi più potenti e comunemente usati in Linux. Grep cerca uno o più file di input alla ricerca di linee che corrispondono a un determinato modello e scrive ciascuna riga corrispondente sullo standard output.