Fondamentalmente, tutto in Linux è un file. Ma prima di poter modificare un file, devi essere in grado di individuarlo nel tuo sistema.
Informazioni sulla ricerca di file Linux
In questo articolo descrivo brevemente due comandi nel dettaglio con esempi utili per cercare file con il terminale. I due comandi sono il comando trova e il comando di localizzazione . La differenza tra i due comandi è che find esegue una ricerca in tempo reale e locate utilizza un database indicizzato per la ricerca. Ciò significa che il comando locate è in genere più veloce, ma presuppone che il file cercato sia nel database dell'indice e che il database venga solitamente creato di notte, quindi i file più recenti non vengono trovati dal comando locate. Sto usando Debian 11 nel mio ambiente. Ma i comandi dovrebbero essere gli stessi su altre distribuzioni Linux.
Se vuoi cercare i file in base al loro contenuto anziché al nome del file, dai un'occhiata al comando grep.
Ricerca di file e directory utilizzando il comando trova
Cerca il file nella directory corrente
Se vuoi trovare un file usando il comando trova, esegui una delle seguenti operazioni sul tuo terminale.
find <filname>
supponiamo,
find test.txt
Questo cercherà il file nella directory corrente su cui stai lavorando.
Cerca il file in un'altra directory
Ora, se vuoi individuare il file in una directory specifica. Il comando completo dovrebbe assomigliare a,
find <path of directory/filename>
Supponiamo di voler cercare un file chiamato "test.txt" in Documenti, il comando completo dovrebbe essere il seguente.
find Documents/test.txt
Trova i file per estensione di file
Ora, se vuoi trovare tutti i file di testo nella tua directory corrente o specifica, i rispettivi comandi dovrebbero apparire come segue.
find *.txt
find <path of directory/*.txt>
Supponiamo di voler cercare tutti i file di testo nel percorso di Documenti/Karim, il comando completo dovrebbe essere simile.
find Documents/Karim/*.txt
Trova i file per nome
In alternativa, puoi usare -name switch quando vuoi cercare un file per nome.
find <path> -name <name of file you want to search>
Supponiamo di voler cercare un file chiamato test1.txt in Documenti/Karim. Il comando completo dovrebbe essere simile.
find Documents/Karim -name test1.txt
Se vuoi cercare un file specifico nella directory corrente su cui stai lavorando. Mettere . al percorso come mostrato nell'esempio.
find . -name test1.txt
Ignora maiuscole e minuscole durante la ricerca di file
Se vuoi cercare un file e vuoi ignorare il caso, usa l'opzione -iname. Il comando completo dovrebbe apparire come segue.
find . -iname test.txt
Trova i file per tipo di file, ad es. collegamenti simbolici
Per cercare un tipo di file specifico, utilizzare l'opzione -type. Il comando completo dovrebbe essere simile al seguente.
find <path> -type <c>
- c denota il tipo di file e stanno seguendo.
- b blocco (bufferizzato) speciale
- c carattere speciale (senza buffer)
- d directory
- p pipa denominata
- f file normale
- l collegamento simbolico
- D porta (Solaris)
Supponiamo di voler cercare file regolari in Documenti/Karim, eseguire il comando seguente.
find Documents/Karim -type f
Se vuoi cercare file normali nella tua directory corrente. Il comando completo dovrebbe essere simile al seguente.
find . -type f
Se vuoi cercare file con più estensioni, usa i caratteri c separati da virgole.
Supponiamo che tu voglia trovare tutti i normali file vuoti nella tua directory corrente.
find . -type f -empty
Supponiamo di voler trovare tutte le directory vuote nella directory corrente, utilizzare le opzioni -d e -empty in un comando trova come segue.
find . -type d -empty
Trova i file per dimensione
Se vuoi trovare file con una dimensione specifica, puoi usare il parametro -size. Puoi utilizzare il seguente suffisso con la loro dimensione esatta.
- c :byte
- k :kilobyte
- M :Megabyte
- G :Gigabyte
- b :blocco da 512 byte
Supponiamo di voler trovare tutti i file nella directory corrente che sono esattamente 50 byte. Devi eseguire il seguente comando.
find . -size 50c
Supponiamo di voler trovare tutti i file nella directory corrente che sono rispettivamente più di 50 byte o meno di 50 byte, devi eseguire uno dei seguenti comandi.
find . -size +50c
find . -size -50c
Trova i file per proprietario (utente)
Se vuoi cercare un file di proprietà di un utente specifico, puoi usare l'opzione -user. La sintassi del comando dovrebbe essere la seguente.
find <path> -user <username>
Supponiamo di voler cercare un file nella directory corrente di proprietà di vitux. Il comando dovrebbe apparire come segue.
find . -user vitux
Trovare file utilizzando un comando di localizzazione
Il secondo è il comando locate che puoi usare per cercare file e directory nel tuo sistema.
Prima di tutto, devi installare l'utilità locate nella tua macchina Debian 11. Accedi con root ed esegui il seguente comando sul tuo terminale. Premi Y dalla tastiera quando ti viene richiesta la conferma.
apt-get install locate
Attendi il completamento di un'operazione.
Locate è un comando più rapido e si basa sul database del file system. Viene aggiornato una volta al giorno ma se vuoi aggiornarlo manualmente, esegui il seguente comando sul tuo terminale con privilegi di root.
updatedb
Per cercare un file con il comando locate nella directory corrente, esegui quanto segue sul tuo terminale.
find <filname>
Supponiamo che il nome del mio file sia test.txt. Il comando completo dovrebbe essere simile al seguente.
locate test.txt
Puoi usare l'opzione -i per ignorare il nome del file.
locate -i <filename>
o
locate -i test.txt
Sia i comandi locate che find sono utili nella ricerca dei file. Sta a te decidere quale comando usi maggiormente. Possono essere estesi con altri comandi usando pipe, wc, sort e grep, ecc.