Vuoi trovare tutti i file che contengono una particolare parola o stringa di testo sull'intero sistema Linux o su una determinata directory. Questo articolo ti guiderà su come farlo, imparerai come scavare ricorsivamente attraverso le directory per trovare ed elencare tutti i file che contengono una determinata stringa di testo.
Un modo semplice per risolverlo è utilizzare lo strumento di ricerca di modelli grep, un'utilità da riga di comando potente, efficiente, affidabile e più popolare per trovare modelli e parole da file o directory su sistemi simili a Unix.
Leggi anche :11 comandi avanzati "Grep" di Linux su classi di caratteri ed espressioni di parentesi
Il comando seguente elencherà tutti i file contenenti una riga con il testo "check_root ”, cercando in modo ricorsivo e aggressivo il ~/bin
directory.
$ grep -Rw ~/bin/ -e 'check_root'
Dove il -R
l'opzione dice a grep per leggere tutti i file in ogni directory, in modo ricorsivo, seguendo i collegamenti simbolici solo se si trovano sulla riga di comando e sull'opzione -w gli indica di selezionare solo quelle righe contenenti corrispondenze che formano parole intere e -e
viene utilizzato per specificare la stringa (modello) da cercare.
Dovresti usare il comando sudo durante la ricerca di determinate directory o file che richiedono i permessi di root (a meno che tu non stia gestendo il tuo sistema con l'account di root).
$ sudo grep -Rw / -e 'check_root'
Per ignorare le distinzioni tra maiuscole e minuscole, utilizza -i
opzione come mostrato:
$ grep -Riw ~/bin/ -e 'check_root'
Se vuoi conoscere la riga esatta in cui esiste la stringa di testo, includi il -n
opzione.
$ grep -Rinw ~/bin/ -e 'check_root'
Supponendo che ci siano diversi tipi di file in una directory in cui desideri cercare, puoi anche specificare il tipo di file da cercare, ad esempio, in base alla loro estensione usando il --include
opzione.
Questo esempio indica a grep di esaminare solo tutti i .sh
file.
$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'
Inoltre, è possibile cercare più di un pattern, utilizzando il seguente comando.
$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'
Questo è tutto! Se conosci altri trucchi da riga di comando per trovare stringhe o parole nei file, condividi con noi o fai domande su questo argomento, usa il modulo di commento qui sotto.