Questa guida ti mostrerà come utilizzare i comandi "trova" e "localizza" per trovare file e directory sui tuoi file system Linux.
Sommario
- Trova file e directory in Linux usando il comando trova
- Trova i file per nome
- Trova file per nome parziale
- Trova i file per dimensione
- Trova file utilizzando timestamp
- Trova file per proprietario
- Trova file in base alle autorizzazioni
- Trova le directory per nome
- Trova file e directory in Linux usando il comando locate
- Trova i file per nome
- Trova file per nome parziale
- Limita risultati di ricerca
- Visualizza il numero di voci corrispondenti
- Ottieni informazioni su individuare database
- Conclusione
Ci sono momenti in cui vuoi accedere a un file specifico ma non riesci a trovarlo sul tuo sistema Linux. Sebbene ci siano molti modi con cui possiamo cercare e individuare file e directory su Linux, il più semplice e veloce è probabilmente tramite il terminale.
Il find
command è una delle utility da riga di comando più importanti e utilizzate di frequente in Linux.
Trova file e directory in Linux usando il comando trova
Il find
di Linux command è un potente strumento che consente agli amministratori di sistema di individuare e gestire file e directory in base a un'ampia gamma di criteri di ricerca. Supporta la ricerca per file, cartella, nome, data di creazione, data di modifica, proprietario e autorizzazioni.
Il find
comando viene utilizzato per trovare file e directory ed eseguire operazioni successive su di essi. Cerca i file e le directory in ogni percorso in modo ricorsivo. Pertanto, quando find
comando incontra una directory all'interno del percorso specificato, cerca altri file e directory al suo interno.
Trova file per nome
La sintassi generale di find
il comando è:
find [path] [options] [expression]
Analizziamo questa sintassi:
path
: Definisce la directory iniziale in cui find cercherà i file.options
: Controllafind
comportamento del processo e metodo di ottimizzazione.expression
: questo attributo è composto da opzioni, modelli di ricerca e azioni separate da operatori.
L'uso più comune del comando trova è cercare un file in base al suo nome. Il -type f
l'opzione indica al sistema che stiamo cercando un file. Per trovare un file utilizzando il nome del file, utilizza il -name
flag con il comando predefinito.
Ad esempio, per cercare un file denominato report.pdf
nel /home
directory, dovresti usare il seguente comando:
find /home -type f -name report.pdf
Come sai, Linux fa distinzione tra maiuscole e minuscole riguardo ai nomi dei file , quindi se stai cercando un file chiamato Report.pdf
, il comando mostrato sopra non restituirà alcun risultato. In tal caso dovrai usare il -iname
opzione invece di -name
.
Il -iname
l'opzione esegue una ricerca senza distinzione tra maiuscole e minuscole , quindi possiamo farlo:
find /home -type f -iname report.pdf
Questo comando individuerà un file che ha uno dei seguenti nomi:report.pdf
, Report.pdf
, REPORT.pdf
, ecc.
Trova file per nome parziale
Puoi utilizzare meta-caratteri del nome file come l'asterisco (*
), ma dovresti inserire un carattere di escape (\
) davanti a ciascuno di essi o racchiuderli tra virgolette.
Ad esempio, per trovare tutti i file che terminano con un .pdf
, potresti eseguire:
find /home -type f -name '*.pdf'
che è uguale a:
find /home -type f -name \*.pdf
Allo stesso modo, per trovare tutti i file sul tuo sistema Linux i cui nomi iniziano con report
, potresti eseguire:
find /home -type f -name 'report*'
Trova file per dimensione
Utilizzando find
comando, possiamo anche ottenere facilmente qualcosa che potrebbe sembrare complicato:trovare file più grandi o più piccoli di una determinata dimensione .
La -size
opzione su find
ci consente di cercare file di una dimensione specifica. Il +
e -
i prefissi significano "maggiore di" e "minore di", come al solito.
L'esempio seguente cercherà tutti i file maggiori di 1 Gigabyte. Nota l'uso di +
firmare:
find /home -type f -size +1G
Nell'esempio sopra, il suffisso G
denota Gigabyte. Gli altri suffissi popolari disponibili sono:
c
:byte.k
:kilobyte.M
:Megabyte.
Quanto sopra find
comando è stato utilizzato per cercare tutti i file di dimensioni superiori a quelle specificate. Successivamente, find
command example cercherà tutti i file con dimensioni inferiori a 200 kilobyte. Nota l'uso di -
firmare:
find /home -type f -size -200k
Ora probabilmente ti chiedi come trovare file in Linux di una certa dimensione . Ad esempio, puoi trovare file di dimensioni comprese tra 100 Megabyte e 120 Megabyte utilizzando il comando seguente:
find /home -type f -size +100M -size -120M
Trova file utilizzando timestamp
Linux assegna timestamp specifici a ogni singolo file nel file system. Il find
comando può anche cercare file in base alla loro ultima modifica , accedere o modificare l'ora.
Il -mtime
l'opzione viene utilizzata per specificare il numero di giorni in cui è presente il file. L'espressione può essere utilizzata in due modi:
-mtime +N
trova i file modificati più diN
giorni fa (per maggiore di).-mtime -N
trova i file modificati inferiori aN
giorni fa (per meno di).
Ad esempio, se inserisci +3
, troverà tutti i file da /home
directory più vecchia di 3 giorni.
find /home -type f -mtime +3
Allo stesso modo, se vogliamo trovare tutti i file che sono cambiati nelle ultime 24 ore:
find /home -type f -mtime -1
Allo stesso modo, puoi utilizzare -mmin N
espressione per fare affidamento sui minuti anziché sui giorni.
Ad esempio, questo comando trova tutti i file da /home
directory modificata nell'ultimo minuto.
find /home -type f -mmin -1
Inoltre, possiamo anche comporre espressioni. Ecco come trovare i file in Linux che sono stati modificati meno di 60 minuti fa e più di 30 minuti fa:
find /home -type f -mmin -60 -mmin +30
Trova file per proprietario
Per trovare i file di proprietà di un particolare utente o gruppo, utilizza il -user
e -group
opzioni.
Ad esempio, per trovare i file di proprietà dell'utente john
nel /home
cartella del server:
find /home -type f -user john
Trova tutti i file appartiene a un gruppo chiamato www-data
nel /home
directory:
find /home -type f -group www-data
Trova file in base alle autorizzazioni
Il -perm
l'opzione consente agli utenti di cercare file con un particolare insieme di autorizzazioni .
Il comando seguente troverà i file con l'autorizzazione di esattamente 644 nella directory corrente.
find /home -type f -perm 644
L'uso di -
opzione significa "almeno questo livello di autorizzazione è impostato e qualsiasi autorizzazione superiore".
find /home -type f -perm -644
Questo esempio mostra tutte le risorse in /home
directory con almeno 644
permessi. Ciò significa che i file con i permessi come 777
, 745
, 666
, 655
, 654
, ecc, corrisponderebbero, mentre i file con autorizzazioni 642
, 611
, 600
, 544
, ecc, non corrisponderebbero.
Trova directory per nome
Tutti gli esempi che abbiamo visto finora restituiscono file. Tuttavia, se devi cercare solo le directory, puoi utilizzare il -type d
interruttore.
In altre parole, puoi impedire il find
comando in Linux dalla ricerca di altri tipi di file eccetto le directory utilizzando -type d
flag (d
significa directory).
Per trovare una cartella denominata scripts
nel /home
directory, esegui:
find /home -type d -name scripts
Allo stesso modo, tutte le altre opzioni mostrate finora sono applicabili anche durante la ricerca di directory.
Per ulteriori informazioni su find
comando in Linux, consulta la sua pagina del manuale.
Trova file e directory in Linux usando il comando locate
Mentre find
è senza dubbio una delle utility da riga di comando più popolari e potenti per la ricerca di file in Linux, non è abbastanza veloce per le situazioni in cui sono necessari risultati istantanei.
Il locate
il comando è più veloce di find
comando perché utilizza un database creato in precedenza, mentre il find
il comando ricerca in tempo reale, attraverso tutte le directory e i file effettivi.
Se locate
non è installato, puoi installarlo facilmente usando il gestore di pacchetti della tua distribuzione Linux.
Su Ubuntu o qualsiasi altro sistema basato su Debian, digita il seguente comando:
sudo apt install mlocate
Se stai utilizzando Fedora o CentOS, utilizza invece questo comando:
sudo dnf install mlocate
Gli utenti di Arch Linux devono eseguire:
sudo pacman -S mlocate
Prima di find
può essere utilizzato, sarà necessario creare il database. Questo viene fatto con il updatedb
comando, che (come suggerisce il nome) aggiorna il database.
sudo updatedb
Il database verrà aggiornato automaticamente su base giornaliera, ma puoi anche aggiornarlo tu stesso in qualsiasi momento in modo da ottenere risultati sempre aggiornati.
Trova file per nome
Il locate
il comando è molto facile da usare. Tutto quello che devi fare è passargli il nome del file che vuoi cercare.
locate report.pdf
Proprio come il find
comando, find
è configurato per elaborare le query con distinzione tra maiuscole e minuscole. Per avere locate
comando ignora la distinzione tra maiuscole e minuscole e mostra i risultati per le query sia maiuscole che minuscole, devi utilizzare il -i
opzione.
locate -i rEpoRT.pdf
Trova file per nome parziale
Se vuoi cercare tutti i nomi di file che hanno la stringa .pdf
in essi, puoi farlo usando locate
nel modo seguente:
locate '*.pdf'
Limita i risultati della ricerca
Puoi limitare i risultati della ricerca a un numero richiesto per evitare la ridondanza con i risultati della ricerca utilizzando il -n
opzione.
Ad esempio, se desideri solo 10 risultati dalle tue query, puoi digitare il seguente comando:
locate -n 10 '*.pdf'
Mostra il numero di voci corrispondenti
Per contare il numero di occorrenze di un nome file o di un modello di ricerca utilizzando il comando locate, invoca il -c
opzione come mostrato.
locate -c '*.pdf'
Ottieni informazioni su locate Database
Per raccogliere ulteriori informazioni sul database locate mlocate.db
che find
ha catalogato, utilizza il -S
opzione:
locate -S
Database /var/lib/mlocate/mlocate.db:
72376 directories
1142596 files
98622214 bytes in file names
33950606 bytes used to store database
Per ogni evenienza, ecco la pagina man per locate
comando.
Conclusione
Esistono due utilità di ricerca di file più utilizzate accessibili agli utenti Linux, chiamate find
e locate
. Entrambi sono buoni modi per trovare file sul tuo sistema. Sta a te decidere quale di questi strumenti è appropriato in ogni situazione.
Questo articolo dovrebbe darti una comprensione fondamentale di come trovare file sui tuoi sistemi Linux. Anche se le opzioni sono state presentate singolarmente, dovresti ricordare che possono essere combinate per poter specificare ancora di più i file che stai cercando.