Linux Command · 6 min read · Sep 17, 2025

Comando Locate di Linux per Principianti (8 Esempi)

Il comando locate su Linux è un’utilità potente utilizzata per trovare rapidamente file e directory in base ai loro nomi. Sfrutta un database precompilato, che di solito viene aggiornato periodicamente dal comando updatedb, per eseguire ricerche rapide, rendendolo significativamente più veloce rispetto ad altri strumenti di ricerca come find. Quando un utente emette il comando locate seguito da un modello di ricerca, scansiona questo database piuttosto che il filesystem stesso, fornendo risultati quasi istantaneamente. Questo rende locate particolarmente utile per gli amministratori di sistema e gli utenti che hanno bisogno di localizzare rapidamente file senza il sovraccarico di una scansione live del filesystem. Tuttavia, l’accuratezza di locate dipende da quanto frequentemente viene aggiornato il database, poiché potrebbe non riflettere le modifiche più recenti nel filesystem fino al prossimo aggiornamento.

In questo tutorial, spiegheremo il comando locate con esempi facili da comprendere. Si prega di notare che tutte le istruzioni/esempi menzionati qui sono stati testati su Ubuntu 24.04.

1. Installare il comando locate

Il comando locate non è preinstallato su Ubuntu e Debian Linux. Puoi installarlo usando questo comando:

sudo apt install locate

Installa il comando locate

Locate esegue la ricerca dei file basandosi su un database di nomi di file precompilato, il che lo rende molto più veloce rispetto ad esempio al comando find quando si effettuano ricerche successive. Ma prima di poterlo usare, dovremo creare e aggiornare il database dei file. Esegui il seguente comando per creare il database locate:

sudo updatedb

Ora siamo pronti per iniziare a usare locate.

2. Come usare il comando locate in Linux

Il comando locate è molto facile da usare. Devi solo passare il nome del file che vuoi cercare.

locate [nomefile]

Ad esempio, se voglio cercare tutti i nomi di file che contengono la stringa ‘dir2’, posso farlo usando locate nel seguente modo:

Nota: Il comando ‘locate dir2’ (senza asterischi) funzionerà anche poiché locate sostituisce implicitamente il nome che passi (diciamo NOME) con NOME.

3. Come funziona il comando locate, o perché è così veloce

Locate è così veloce perché non legge il filesystem per il nome del file o della directory cercata. Si riferisce a un database (preparato dal comando updatedb) per trovare ciò che l’utente sta cercando e, sulla base di quella ricerca, produce il suo output.

Sebbene questo sia un buon approccio, ha i suoi svantaggi. Il problema principale è che dopo ogni nuovo file o directory creato nel sistema, è necessario aggiornare il database dello strumento affinché funzioni correttamente. Altrimenti, il comando non sarà in grado di trovare file/directory creati dopo l’ultimo aggiornamento del database.

Ad esempio, se provo a trovare file con nomi contenenti la stringa ‘tosearch’ nella directory ‘Downloads’ del mio sistema, il comando find produce un risultato nell’output:

Ma quando provo a eseguire la stessa ricerca usando il comando locate, non produce alcun output.

Questo significa che il database in cui locate cerca non è stato aggiornato dopo che il file è stato creato nel sistema. Quindi, aggiorniamo il database, il che può essere fatto usando il comando updatedb. Ecco come fare:

sudo updatedb

E ora quando eseguo di nuovo lo stesso comando locate, mostra i file nell’output:

Allo stesso modo, dopo che un file o una directory è stata rimossa, devi assicurarti che il database locate sia stato aggiornato, altrimenti il comando continuerà a mostrare il file nel suo output quando cercato.

4. Come far stampare a locate il numero o conteggio delle voci corrispondenti nell’output

Come abbiamo visto, il comando locate produce i nomi dei file corrispondenti e i loro percorsi completi o assoluti nell’output. Ma se vuoi, puoi usare lo strumento per sopprimere tutte queste informazioni e stampare solo il numero o il conteggio delle voci corrispondenti. Questo può essere fatto usando l’opzione della riga di comando -c.

5. Come forzare locate a stampare solo quelle voci che corrispondono a file esistenti

Come abbiamo già discusso in precedenza in questo articolo, se un file viene rimosso dal sistema, allora fino a quando non aggiorni di nuovo il database locate, il comando continuerà a mostrare quel nome di file nell’output. Per questo caso specifico, tuttavia, puoi saltare l’aggiornamento del database e avere comunque risultati corretti nell’output usando l’opzione della riga di comando -e.

Ad esempio, ho rimosso il file ‘filetosearch.txt’ dal mio sistema. Questo è stato confermato dal comando find, che non era più in grado di cercare il file:

Ma quando ho eseguito la stessa operazione usando locate, stava ancora mostrando il file nell’output:

E sappiamo perché - perché il database di locate non è stato aggiornato dopo che il file è stato eliminato. Tuttavia, usando l’opzione -e ha fatto il trucco:

Ecco cosa dice la pagina man di locate su questa opzione: “Stampa solo le voci che si riferiscono a file esistenti al momento in cui viene eseguito locate.”

6. Come far ignorare a locate le distinzioni di maiuscole e minuscole

Per impostazione predefinita, l’operazione di ricerca eseguita dal comando locate è sensibile alle maiuscole. Ma puoi forzare lo strumento a ignorare le distinzioni di maiuscole e minuscole usando l’opzione della riga di comando -i.

Ad esempio, ho due file sul mio sistema, chiamati ‘newfiletosearch.txt’ e ‘NEWFILETOSEARCH.txt’. Quindi, come puoi vedere, i nomi dei file sono gli stessi, solo che i loro casi sono diversi. Se chiedi a locate di cercare, diciamo, ”tosearch“, allora mostrerà solo il nome in minuscolo nel suo output:

Ma usando l’opzione della riga di comando -i forzi il comando a ignorare il caso, e entrambi i nomi dei file vengono prodotti nell’output:

7. Come separare le voci di output con ASCII NUL

Per impostazione predefinita, le voci di output prodotte dal comando locate sono separate usando il carattere di nuova riga ( ). Ma se vuoi, puoi cambiare il separatore e avere l’ASCII NUL invece di una nuova riga. Questo può essere fatto usando l’opzione della riga di comando -0.

Ad esempio, ho eseguito lo stesso comando che abbiamo usato nella sezione precedente, ma ho aggiunto l’opzione della riga di comando -0:

Quindi puoi vedere che il separatore di nuova riga non è più presente - è stato sostituito con NUL.

8. Come visualizzare informazioni sul database locate

Nel caso tu voglia sapere quale database locate sta utilizzando, così come altre statistiche sul database, usa l’opzione della riga di comando -S.

9. Come cercare un nome di file esatto usando locate

Per impostazione predefinita, quando cerchi un nome di file usando locate, il nome che passi - diciamo NOME - viene sostituito implicitamente da NOME. Ad esempio, se cerco un nome di file ‘testfile’, allora tutti i nomi che corrispondono a testfile vengono prodotti nell’output:

cerca un nome di file esatto usando locate

Ma cosa succede se il requisito è cercare file con nomi che corrispondono esattamente a ‘testfile’? Bene, in questo caso, dovrai usare le espressioni regolari, che possono essere abilitate usando l’opzione della riga di comando -r. Quindi, ecco come puoi cercare solo ‘testfile’ usando le espressioni regolari:

locate -r /testfile$

Se sei nuovo alle espressioni regolari, vai qui. Per passare a una directory diversa, puoi usare il comando cd della shell.

Conclusione

Locate offre molte più opzioni, ma quelle che abbiamo discusso qui dovrebbero essere sufficienti per darti un’idea di base sull’utilità della riga di comando, così come per farti iniziare. Ti consiglieremmo di provare tutte le opzioni descritte qui sul tuo computer Linux, e poi passare ad altre che puoi trovare nella pagina man dello strumento.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.