Questo articolo spiega come trovare file e directory in Linux. Useremo il comando locate, find e grep. Ogni comando è discusso in dettaglio di seguito.
Abbiamo utilizzato Ubuntu 20.04 LTS per dimostrare il processo.
Utilizzo del comando Localizza per trovare file e directory in Linux
Il comando locate offre risultati più rapidi poiché legge il database mlocate.db che contiene tutti i percorsi dei file nel tuo sistema.
Installa localizzare
Se ricevi il messaggio di seguito, devi installare locate.
Il comando per l'installazione di locate è:
sudo apt-get install mlocate
Il primo passo è inserire la tua password. Una volta inserita la password, l'installazione inizia.
È necessario aggiornare il database di ricerca dopo l'installazione. Poiché locate si basa su questo database, è necessario aggiornarlo regolarmente per garantire l'efficienza. Sono necessari i privilegi di superutente per aggiornare il database mlocate.
sudo updatedb
Ricerca di file utilizzando il nome file
Per cercare i file usando i loro nomi, usa il seguente comando:
locate {filename}
Cercheremo un file chiamato "textfile.txt", quindi il comando sarà:
locate textfile.txt
Il risultato sarà il percorso in cui si trova il file.
Ignora la distinzione tra maiuscole e minuscole
Per impostazione predefinita, individua le query dei processi facendo distinzione tra maiuscole e minuscole, il che significa che textfile.txt e TEXTFILE.TXT punteranno a risultati di ricerca diversi.
Come puoi vedere, non è stato possibile individuare TEXTFILE.TXT.
Puoi ignorare la distinzione tra maiuscole e minuscole utilizzando –i opzione. Il comando è:
locate –i {file name}
Come puoi vedere, il file è stato individuato.
Utilizzo del comando find per trovare file e directory in Linux
Rispetto a localizzare, trova è molto più potente, ma più lento. È più lento perché cerca i file nel disco. Ciò che rende fantastico trovare è che puoi trovare file e directory in Linux in base a gruppi di utenti, quando i file sono stati modificati o consultati, autorizzazioni, date e dimensioni dei file.
Ricerca di file nella directory corrente
Puoi visualizzare tutti i file con un nome particolare nella directory corrente utilizzando il seguente comando:
find . -name {filename}
Vedrai tutti i file che hanno il nome “textfile.txt” nella directory corrente.
Ricerca di file nella home directory
Per cercare i file nella tua home directory, usa /home . Il comando sarà:
find /home -name {filename}
Vedrai tutti i file denominati Hello.txt nella tua home directory.
Ignora la distinzione tra maiuscole e minuscole
Per impostazione predefinita, trova elabora le query facendo distinzione tra maiuscole e minuscole, il che significa che hello.txt e Hello.txt punteranno a risultati di ricerca diversi.
Come puoi vedere, non è stato possibile trovare hello.txt.
Per ignorare la distinzione tra maiuscole e minuscole, utilizzare il comando seguente:
find –iname {file name}
Come puoi vedere nell'immagine qui sotto, hello.txt è stato individuato.
Trova usando i caratteri jolly
È possibile utilizzare i caratteri jolly per cercare file in base a determinati criteri. L'asterisco (* ) il carattere jolly ti consente di abbinare le istanze di un carattere.
L'esempio seguente utilizza i seguenti comandi:
find . –name ‘*he’
Questo comando elenca tutti i nomi di file che terminano con 'he'
find . –name ‘he*’
Questo comando elenca tutti i nomi di file che iniziano con "he"
Trova utilizzando la dimensione del file
Per trovare i file in base alle dimensioni, usa:
find –size {filesize} –type f
Questo comando cerca i file che hanno una dimensione di 68 byte.
Per cercare file più grandi o più piccoli di una determinata dimensione, aggiungi "+ ” o “– ” rispettivamente al tuo comando.
find –size -{filesize} –type f
L'esempio seguente cerca file di dimensioni inferiori a 512 byte.
Questo comando cerca i file maggiori di 512 byte.
Trova i file in base a quando sono stati modificati l'ultima volta
Usa il comando seguente per cercare i file in base a quando sono stati modificati l'ultima volta:
find -iname "*.txt" -mtime -60
Questo comando cerca i file che sono stati modificati negli ultimi 60 giorni.
Trova directory
Per trovare una directory, usa il comando:
find –name “{file name}” –type d
Di conseguenza puoi vedere il percorso della directory.
Trova file di sola lettura
Per trovare file di sola lettura, usa il comando
find / -perm /u=r
Puoi vedere tutti i file di sola lettura nel terminale.
Utilizzo del comando Grep per trovare file e directory in Linux
Grep, Global Regular Expression Print viene utilizzato in Linux per trovare stringhe in un particolare file. Se grep trova quei caratteri, stampa la riga. Il comando è:
grep {string} {file name}
Nell'esempio seguente, cercheremo la stringa "is" nel file "textfile.txt". Puoi vedere le righe che contengono la "è".
Stampa i numeri di riga
Stampi i numeri di riga insieme alla stringa corrispondente usando:
grep {string} {filename} –n
L'esempio seguente stampa il numero di riga in cui si trova la stringa "is".
Inverti corrispondenza
Questa opzione ti consente di stampare le linee che non corrispondono al motivo inserito.
grep {string} {file name} –v
L'esempio seguente stampa la riga del file di testo “textfile.txt” che non contiene “is”.
Ignora la distinzione tra maiuscole e minuscole
Per impostazione predefinita, grep elabora le query con distinzione tra maiuscole e minuscole, il che significa che è e IS punterà a risultati di ricerca diversi.
Come puoi vedere, non è stato possibile trovare "IS".
Usa il comando seguente per ignorare maiuscole e minuscole:
grep {string} {file name} –i
Ricerca ricorsiva
Grep non ti consente di cercare nelle directory, per impostazione predefinita. Viene visualizzato il seguente errore:
Puoi cercare all'interno delle directory usando:
grep {string} . –R
L'esempio seguente cerca la stringa "some" nella directory corrente.
In questo articolo, abbiamo visto come funzionano locate, find e grep per trovare file e directory in Linux. Abbiamo anche esaminato alcuni casi su come vengono utilizzati.