Risposta rapida
Cercare nei file di testo: usa grep o ripgrep per testo semplice, codice, log e file di configurazione.
Cercare all'interno dei documenti: usa un'applicazione desktop per PDF, Word, Excel, LibreOffice e altro ancora.
Cerchi invece un file per nome? Usa find o locate.
Ho testato un'ampia gamma di comandi e applicazioni Linux per la ricerca di file, molti più di quelli trattati qui, e ho selezionato i metodi più pratici ed efficaci. Ho testato gli esempi su Ubuntu utilizzando la stessa raccolta di file TXT, PDF, ODT, DOCX e di altro tipo impiegata in tutto l'articolo.
Usa la tabella seguente per scegliere innanzitutto il metodo giusto, quindi consulta la sezione pertinente.
Quale metodo di ricerca Linux dovresti usare?
Il metodo migliore dipende soprattutto dal tipo di file in cui devi effettuare la ricerca.
| Attività | Opzione migliore |
| Cercare nei file di testo con un comando Linux standard | grep |
| Cercare rapidamente nei file di testo di cartelle di grandi dimensioni | ripgrep |
| Trovare un file per nome, non in base al contenuto | find o locate |
| Cercare all'interno di PDF, Word, LibreOffice, Excel e altri documenti | SeekFast |
| Usare uno strumento gratuito e open source per la ricerca indicizzata nei documenti | Recoll o DocFetcher |
Gli strumenti grep e ripgrep cercano all'interno dei file di testo, mentre find e locate cercano nomi e percorsi dei file. Questi strumenti sono eccellenti per i file tecnici, ma non consentono di cercare in modo affidabile all'interno di formati di documenti complessi. Per questo motivo, la soluzione adatta a una cartella piena di documenti è diversa da quella adatta a una cartella piena di log o codice.
Cercare testo nei file con il comando grep
Il comando grep è lo strumento Linux standard per trovare testo nei file. È particolarmente adatto per testo semplice, codice sorgente, log, file CSV, file Markdown e file di configurazione.
Per cercare una parola nei file .txt della cartella corrente, usa:
grep "budget" *.txt
Per cercare in una cartella e in tutte le sue sottocartelle, usa la ricerca ricorsiva:
grep -R "budget" ~/Documents/stories
In pratica, di solito aggiungo i numeri di riga e i nomi dei file, perché rendono i risultati più facili da usare:
grep -RIn "budget" ~/Documents/stories
Ecco il significato delle opzioni:
- -R cerca ricorsivamente nelle cartelle.
- -I ignora i file binari.
- -n mostra i numeri di riga.

Ricerca senza distinzione tra maiuscole e minuscole
Per ignorare le differenze tra maiuscole e minuscole, aggiungi -i:
grep -RIn -i "report" ~/Documents/stories
In questo modo puoi trovare "report", "Report" e "REPORT".
Cercare solo parole intere
Per trovare una parola intera, aggiungi -w:
grep -RIn -w "policy" ~/Documents/stories
In questo modo si evitano corrispondenze all'interno di parole più lunghe, come "policyholder".
Cercare solo tipi di file specifici
Per cercare solo nei file con una determinata estensione, usa --include:
grep -RIn --include="*.txt" "budget" ~/Documents/stories
Per più estensioni, ripeti l'opzione:
grep -RIn --include="*.txt" --include="*.md" "budget" ~/Documents/stories
È utile per le cartelle che contengono molti tipi di file quando vuoi cercare solo nei file basati su testo.
Escludere cartelle dalla ricerca
Le cartelle di grandi dimensioni contengono spesso directory in cui non vuoi cercare, come archive, drafts o cartelle di backup. Puoi escluderle in questo modo:
grep -RIn --exclude-dir="archive" --exclude-dir="drafts" "risk" ~/Documents/stories
Questo rende i risultati più puliti e può velocizzare notevolmente la ricerca.
Cercare una frase esatta o più stringhe
Per cercare una frase esatta, racchiudila tra virgolette:
grep -RIn "sales report" ~/Documents/stories
Per cercare una qualsiasi tra diverse stringhe, aggiungi un'opzione -e per ciascuna stringa:
grep -RIn -e "sales" -e "budget" -e "payment" ~/Documents/stories
Puoi anche usare le espressioni regolari estese con -E:
grep -RInE "customer|product|service" ~/Documents/stories
Entrambi i comandi trovano una riga contenente almeno una delle stringhe. Se ti servono file che contengano sia "sales" sia "payment", anche su righe diverse, filtra i nomi dei file in due passaggi:
grep -RIlZ "sales" ~/Documents/stories | xargs -0 -r grep -Il "payment"

Questi sono i casi d'uso più comuni del comando grep. Per la documentazione completa, consulta il manuale GNU di grep.
Quando grep non è sufficiente
Il comando grep è potente, ma rimane uno strumento di ricerca nel testo semplice. In genere funziona bene con i file memorizzati come testo leggibile. Non è una buona soluzione generica per documenti Word, fogli di calcolo Excel, file LibreOffice, PDF, eBook o altri formati di documenti.
Se provi a usare grep in una cartella piena di documenti di tipi diversi, spesso perderai corrispondenze importanti o otterrai un output illeggibile. In questi casi, passa direttamente agli strumenti di ricerca nei documenti.
Usare ripgrep per ricerche più rapide dalla riga di comando
Lo strumento ripgrep, solitamente eseguito come rg, è un moderno strumento di ricerca da riga di comando. La guida ufficiale di ripgrep spiega che, per impostazione predefinita, cerca ricorsivamente nelle directory e applica filtri automatici. Per le ricerche ricorsive in grandi cartelle di codice e testo, è spesso più veloce del comando grep standard.
Per cercare nella cartella corrente e nelle sue sottocartelle, usa:
rg "budget"
Per cercare in una cartella specifica:
rg "budget" ~/Documents/stories
Per cercare solo in determinati tipi di file:
rg "budget" -g "*.txt" ~/Documents/stories
Per impostazione predefinita, lo strumento ripgrep rispetta anche .gitignore, una caratteristica utile nei progetti di codice sorgente perché ignora automaticamente molti file generati o irrilevanti.
Usa ripgrep quando cerchi nel codice, nei log, nei file Markdown, nei file di configurazione o in altri file di testo semplice. Per PDF, Word, LibreOffice, Excel e altri documenti, usa invece uno strumento di ricerca nei documenti.

Quale dovresti usare: grep o ripgrep?
Entrambi gli strumenti cercano nel contenuto di file di testo semplice, ma sono adatti a flussi di lavoro leggermente diversi:
- Usa grep se vuoi un comando standard già disponibile su quasi tutti i sistemi Linux.
- Usa ripgrep per ricerche ricorsive rapide nei repository di codice e nelle grandi cartelle di testo.
- Lo strumento ripgrep cerca nelle sottocartelle per impostazione predefinita e rispetta
.gitignore, mentre il comando grep richiede opzioni ricorsive ed esegue una ricerca più letterale, a meno che non vengano esclusi determinati percorsi. - Per PDF, Word, Excel, LibreOffice e altri formati di documenti complessi, usa uno strumento di ricerca nei documenti anziché uno dei due comandi.
Come installare ripgrep su Ubuntu, Mint, Fedora, Debian e altre distribuzioni Linux
I comandi di ricerca di ripgrep sono gli stessi in tutte le distribuzioni Linux. Solo il comando di installazione cambia in base al gestore di pacchetti. I comandi seguenti si basano sulle istruzioni ufficiali per l'installazione di ripgrep.
| Distribuzione | Installare ripgrep |
| Ubuntu, Linux Mint, Debian | sudo apt install ripgrep |
| Fedora | sudo dnf install ripgrep |
| openSUSE | sudo zypper install ripgrep |
| Arch Linux | sudo pacman -S ripgrep |
Trovare file e directory per nome in Linux
Se conosci tutto o parte del nome di un file, usa il comando find. Il manuale GNU Findutils documenta i filtri per nome, data, dimensione e altre proprietà. Il comando non cerca il testo memorizzato all'interno dei file; per questo, usa grep o ripgrep.
Per trovare i file i cui nomi contengono una determinata parola nella cartella stories e nelle relative sottocartelle, usa:
find ~/Documents/stories -type f -iname "*profit*"
Usa -iname per una corrispondenza parziale senza distinzione tra maiuscole e minuscole:
find ~/Documents/stories -type f -iname "*shopping*"
Gli asterischi corrispondono a qualsiasi carattere prima o dopo "shopping". Per trovare una directory anziché un file, sostituisci -type f con -type d:
find ~/Documents/stories -type d -iname "*archive*"
Puoi inoltre filtrare i file per estensione, data di modifica o dimensione:
find ~/Documents/stories -type f -iname "*.pdf"
find ~/Documents/stories -type f -mtime -7
find ~/Documents/stories -type f -size +100M
Questi comandi trovano, rispettivamente, i file PDF, i file modificati all'incirca negli ultimi sette giorni e i file di dimensioni superiori a 100 MB.
Trovare file più velocemente con locate
Il comando locate esegue la ricerca in un database di nomi di file anziché scansionare ogni volta il file system, quindi le ricerche per nome sono generalmente molto più veloci rispetto a find. Il manuale di plocate spiega il funzionamento di questa ricerca indicizzata:
locate -i "profit"
Poiché locate utilizza un indice, i file creati di recente potrebbero non apparire finché il database non viene aggiornato. Nei sistemi in cui disponi dell'autorizzazione necessaria per aggiornarlo, usa:
sudo updatedb
Usa find quando ti servono risultati aggiornati o filtri dettagliati. Usa locate quando vuoi trovare nel modo più rapido possibile il nome di un file esistente nelle posizioni indicizzate.


I migliori strumenti di ricerca nei documenti per Linux
Gli strumenti grep e ripgrep sono progettati per il testo semplice. Per cercare in PDF, Word, Excel, LibreOffice, eBook e altri formati, usa una delle applicazioni per la ricerca nei documenti elencate di seguito; i PDF scansionati contenenti solo immagini richiedono prima il riconoscimento OCR.
SeekFast è particolarmente adatto quando vuoi cercare in cartelle contenenti diversi tipi di documenti, visualizzare un'anteprima delle frasi corrispondenti e vedere i risultati ordinati per pertinenza senza usare il terminale. È particolarmente comodo quando devi cercare in una cartella nuova o modificata di frequente.
Recoll e DocFetcher sono buone scelte se preferisci software gratuito e open source e non ti dispiace creare anticipatamente un indice. L'indicizzazione richiede una certa preparazione, ma può rendere più pratiche le ricerche ripetute in una raccolta di documenti consolidata.
L'applicazione desktop ChatGPT adotta un approccio diverso. Può lavorare con le cartelle che scegli, rispondere a domande in linguaggio naturale, confrontare file e riepilogare i risultati. È preferibile usarla come complemento quando devi comprendere le informazioni, anziché come unico strumento per ricerche esaustive di corrispondenze esatte.
SeekFast
SeekFast è uno strumento di ricerca nei documenti per Windows, macOS e Linux. È progettato per cercare all'interno di grandi raccolte di documenti, anziché limitarsi alla ricerca nei file di testo semplice dal terminale.
Il vantaggio principale è la praticità. Scegli una cartella, digiti i termini di ricerca e visualizzi le frasi corrispondenti prima di aprire ogni file. È utile quando non conosci il nome esatto del file e devi cercare all'interno di molti documenti.

SeekFast è particolarmente utile quando la cartella contiene documenti di tipi diversi, perché può cercare all'interno di molti formati e ordinare i risultati per pertinenza. Questo la rende più simile a un'esperienza di ricerca sul Web che a una tradizionale ricerca di corrispondenze esatte nei file.
Le funzionalità principali includono:
- Ricerca nei documenti - cerca in oltre 120 formati di file supportati, tra cui PDF, Word, LibreOffice, Excel, file di testo ed eBook.
- Anteprime delle frasi corrispondenti - visualizza il testo pertinente prima di aprire il file.
- Risultati ordinati per pertinenza - i file con corrispondenze migliori appaiono più in alto nei risultati.
- Ricerca con più parole chiave - trova i documenti anche quando le parole non sono adiacenti.
- Flusso di lavoro grafico - non è necessario creare comandi da terminale per le comuni attività di ricerca nei documenti.
Vantaggi
- Molto più comodo di grep per le cartelle contenenti documenti veri e propri.
- Funziona bene quando ricordi alcune parole del documento ma non il nome del file.
- Mostra il contesto, così puoi valutare i risultati prima di aprire i file.
- Utile per cartelle miste contenenti PDF, file Office, LibreOffice, file di testo e altri formati.
Svantaggi
- La versione gratuita di SeekFast consente di cercare al massimo in 50 file alla volta.
- Non è pensato per sostituire grep o ripgrep nelle ricerche nel codice sorgente.
- Non supporta flussi di lavoro avanzati con espressioni regolari come gli strumenti specializzati da riga di comando.
Se la tua attività principale consiste nel cercare all'interno di molti documenti anziché nel codice o nei file di log, scarica SeekFast e provalo con una delle tue cartelle di documenti.
Recoll
Recoll è uno strumento gratuito e open source per la ricerca desktop su Linux e altri sistemi simili a Unix. Utilizza un indice: prima scansiona le cartelle che scegli, quindi ti consente di effettuare ricerche rapide al loro interno.

Il supporto di alcuni formati di documenti dipende dalle applicazioni ausiliarie installate nel sistema. È una buona scelta se vuoi uno strumento desktop open source per la ricerca indicizzata e non ti dispiace dedicare un po' di tempo alla configurazione.
Vantaggi
- Gratuito e open source.
- Funziona bene come strumento indicizzato di ricerca desktop per Linux.
- Può cercare in molti formati di documenti con i programmi ausiliari appropriati.
Svantaggi
- L'indicizzazione e la configurazione iniziali possono richiedere tempo.
- Il flusso di lavoro può sembrare tecnico agli utenti occasionali.
- Il supporto dei formati di documenti può dipendere dai pacchetti di sistema installati.
DocFetcher
DocFetcher è un'applicazione desktop gratuita e open source per la ricerca su Linux, Windows e macOS. DocFetcher Pro è una versione a pagamento separata dotata di funzionalità aggiuntive. Come Recoll, funziona creando indici per le cartelle che scegli.

DocFetcher supporta formati di documenti comuni come PDF, Microsoft Office, OpenDocument, HTML e testo semplice. Può essere utile se desideri uno strumento gratuito e multipiattaforma e ti trovi a tuo agio con la creazione di indici prima della ricerca.
Vantaggi
- L'edizione standard di DocFetcher è gratuita e open source.
- Disponibile per Linux, Windows e macOS.
- Può mostrare anteprime del testo dei documenti indicizzati.
Svantaggi
- Richiede la creazione di un indice prima di poter cercare nel contenuto di una cartella.
- L'interfaccia appare più datata rispetto a quella di molti strumenti di ricerca moderni.
- È meno comodo se cerchi spesso in cartelle usate una sola volta senza preparare un indice.
Applicazione desktop ChatGPT
L'applicazione desktop ChatGPT è disponibile in anteprima per le distribuzioni Linux supportate. Non è un programma tradizionale per la ricerca di file. È invece uno spazio di lavoro basato sull'IA in grado di utilizzare i file contenuti nelle cartelle che scegli.
Per usarla con i file locali, apri una cartella locale in ChatGPT Work o Codex e concedi l'accesso ai file che vuoi utilizzare. Puoi quindi porre domande in linguaggio naturale, ad esempio:
- "Trova i documenti che trattano dei rischi aziendali."
- "Confronta i report sulle vendite e mostra le differenze più importanti."
- "Trova le informazioni relative a questo progetto e riassumile."

Questo approccio è particolarmente utile quando non ricordi la formulazione esatta. ChatGPT può aiutarti a cercare in base al significato, collegare informazioni provenienti da più file, riassumere ciò che trova e spiegare i risultati. Codex può inoltre cercare e analizzare progetti di codice sorgente.
Vantaggi
- Accetta domande in linguaggio naturale anziché soltanto parole chiave o espressioni regolari.
- Può riassumere, confrontare e interpretare informazioni provenienti da più file.
- È utile quando il passaggio successivo consiste nel comprendere i risultati, non solo nel trovare una frase.
Svantaggi
- Non è progettata per garantire il rilevamento di ogni occorrenza esatta; quando la completezza è importante, usa grep o ripgrep.
- Non offre lo stesso flusso di lavoro dedicato alla ricerca indicizzata di SeekFast, Recoll o DocFetcher.
- La versione Linux è ancora in anteprima e supporta ufficialmente solo determinate distribuzioni.
- Richiede un account ChatGPT e utilizza servizi online anziché funzionare interamente offline. Prima di usarla con documenti sensibili, consulta come OpenAI utilizza i dati di ChatGPT e Codex e verifica i tuoi requisiti di privacy.
Usa ChatGPT come complemento agli strumenti di ricerca convenzionali: grep e ripgrep sono migliori per le ricerche di testo esatto, le applicazioni di ricerca nei documenti sono migliori per consultare raccolte con risultati prevedibili e ChatGPT è utile quando vuoi comprendere, confrontare o riassumere le informazioni trovate.
Conclusione
In questo articolo ho condiviso i metodi che, durante i miei test, hanno funzionato meglio per trovare file e cercare nei loro contenuti su Linux. Tuttavia, gli utenti Linux hanno spesso i propri strumenti e flussi di lavoro preferiti. Quale metodo usi? Ho tralasciato qualche comando o applicazione utile?
Puoi condividere la tua esperienza in uno dei seguenti modi:
- Lascia un commento utilizzando il modulo qui sotto.
- Partecipa alla nostra discussione su Reddit.
Domande frequenti
1. Come posso trovare un file per nome in Linux?
Usa il comando find. Ad esempio:
find ~/Documents/stories -type f -iname "*profit*"
Questo comando cerca nella cartella stories e nelle relative sottocartelle i nomi di file contenenti "profit", senza distinguere tra maiuscole e minuscole.
2. Qual è la differenza tra find e grep?
Il comando find cerca nomi, percorsi e proprietà dei file. Il comando grep cerca il testo memorizzato all'interno di file di testo semplice. Se conosci il nome del file, usa find; se ricordi alcune parole contenute nel file, usa grep o uno strumento di ricerca nei documenti.
3. Dovrei usare find o locate?
Usa find per ottenere risultati aggiornati e applicare filtri dettagliati. Usa locate per cercare più velocemente un nome di file in un indice creato in precedenza. I file appena creati potrebbero non apparire in locate finché il suo database non viene aggiornato.
4. Come posso cercare testo in tutti i file di una cartella Linux?
Il comando grep -R è la scelta standard. Ad esempio:
grep -RIn "budget" ~/Documents/stories
Funziona al meglio con file di testo semplice, codice sorgente, log e file di configurazione.
5. Come posso cercare anche nelle sottocartelle?
Usa la ricerca ricorsiva con grep -R:
grep -RIn "budget" ~/Documents/stories
Questo comando cerca nella cartella stories e nelle relative sottocartelle, ignora i file binari e mostra i numeri di riga.
6. Come posso cercare solo in determinati tipi di file?
Usa --include. Ad esempio:
grep -RIn --include="*.txt" "budget" ~/Documents/stories
Puoi ripetere --include per più estensioni.
7. Come posso escludere cartelle dalla ricerca di grep?
Usa --exclude-dir. Ad esempio:
grep -RIn --exclude-dir="archive" --exclude-dir="drafts" "risk" ~/Documents/stories
8. Come posso cercare più parole possibili?
Aggiungi un'opzione -e per ciascuna stringa. Ad esempio:
grep -RIn -e "sales" -e "budget" -e "payment" ~/Documents/stories
Questo comando trova le righe contenenti una qualsiasi delle stringhe.
9. ripgrep è migliore di grep?
Lo strumento ripgrep è spesso più veloce e più comodo per le ricerche ricorsive in grandi cartelle di codice e testo, mentre il comando grep è disponibile per impostazione predefinita su quasi tutti i sistemi Linux ed è ideale per le comuni ricerche di testo. Nessuno dei due è uno strumento generico di ricerca nei documenti.
10. Perché grep non trova il testo all'interno dei miei file PDF o Word?
Il comando grep è progettato per il testo semplice. I file PDF, Word, LibreOffice ed Excel memorizzano il testo in formati più complessi, quindi grep potrebbe non rilevare alcune corrispondenze o mostrare un output illeggibile. Per questi file, usa uno strumento di ricerca nei documenti.
11. Qual è il modo migliore per cercare all'interno di file PDF, Word e LibreOffice su Linux?
Usa uno strumento di ricerca compatibile con i documenti. SeekFast è comodo quando vuoi anteprime e risultati ordinati per pertinenza. Recoll e DocFetcher sono buone alternative open source se preferisci una ricerca desktop indicizzata.
12. SeekFast funziona su Linux?
Sì. SeekFast dispone di una versione per Linux e può essere utilizzato per cercare all'interno di molti formati di documenti tramite un'interfaccia grafica.
13. Dovrei usare grep, ripgrep o SeekFast?
Usa grep per le comuni ricerche nel testo semplice. Usa ripgrep per ricerche ricorsive rapide nelle cartelle di codice e testo. Usa SeekFast quando devi cercare all'interno di PDF, Word, LibreOffice, Excel e altri documenti con anteprime.

