Il comando Trova è uno dei comandi più utili e importanti utilizzati in Linux. È disponibile e installato per impostazione predefinita su quasi tutte le versioni di Linux. Tutto su Linux è sotto forma di file e dovremmo essere in grado di individuare un file quando richiesto.
Con l'uso del comando trova, possiamo cercare i file necessari in base a una serie di criteri di ricerca, possiamo utilizzare criteri singoli o combinare più criteri e quindi possiamo eseguire azioni sul risultato ottenuto. In questo tutorial, discuteremo trova il comando con l'aiuto di alcuni esempi,
1) Elenca tutti i file nella directory corrente e le sue sottodirectory
Per elencare tutti i file nella directory corrente e nelle sottodirectory, possiamo usare
$ find
In alternativa, possiamo anche usare 'trova . ' che fornirà anche lo stesso risultato di cui sopra.
2) Trova tutti i file o le directory della tua attuale directory di lavoro
Per cercare solo le directory, possiamo usare
$ find . -type d
Per cercare solo tutti i file e non le directory, usa
$ find . -type f
3) Elenca tutti i file di una directory specifica
Per trovare tutti i file in una directory particolare, possiamo usare
$ find /root
Questo comando cercherà tutti i file nella directory /root.
4) Trova un file con nome in una directory
Per cercare un file in base al nome in una directory particolare, il comando è
$ find /root -name "linuxtechi.txt"
Questo cercherà il file linuxtechi.txt nella cartella /root. Possiamo anche cercare tutti i file con estensione .txt,
$ find /root -name "*.txt"
5) Trova un file in più directory
Per trovare un file in base al suo nome in più directory, possiamo usare
$ find /root /etc -name "linuxtechi.txt"
Con questo comando, possiamo cercare il file linuxtechi.txt nelle directory /root e /etc.
6) Trova un file con nome ignorando maiuscole e minuscole
Per cercare il file con il suo nome indipendentemente dal caso, ad esempio se è maiuscolo o minuscolo, possiamo usare "-iname ' opzione nel comando trova
$ find /root -iname "Linuxtechi.txt"
Il risultato del comando fornirà tutti i file denominati linuxtechi.txt, sia in minuscolo che in maiuscolo o in caratteri misti.
7) Trova tutti i tipi di file diversi dal tipo menzionato
Supponiamo di voler trovare tutti i file che non sono del tipo menzionato, per ottenere ciò possiamo utilizzare,
$ find /root -not -name "*.txt"
8) Trova file con più condizioni
Possiamo anche combinare più di una condizione per cercare i file, supponiamo di voler cercare file con estensioni '.txt' e '.html'
$ find . -regex ".*\.\(txt\|html\)$"
9) Trova i file utilizzando la condizione OR
Possiamo anche combinare più criteri di ricerca e quindi cercare i file in base al rispetto di una qualsiasi delle condizioni utilizzando l'operatore OR,
$ find -name "*.txt" -o -name "linuxtechi*"
10) Trova tutti i file in base alle loro autorizzazioni
Per cercare i file in base alle autorizzazioni, usa -perm opzione nel comando trova
$ find /root -type f -perm 0777
11) Trova tutti i file nascosti
Per cercare tutti i file nascosti in una directory, il comando è
$ find ~ -type f name ".*"
12) Trova tutti i file con SGID
Per individuare tutti i file con bit SGID, possiamo usare
$ find . -perm /g=s
13) Trova tutti i file con SUID
Per individuare tutti i file con bit SUID, utilizzeremo
$ find . -perm /u=s
14) Trova tutti i file eseguibili
Per cercare solo i file eseguibili, il comando è
$ find . -perm /a=x
15) Trova tutti i file di sola lettura
Possiamo anche cercare file di sola lettura usando il comando trova,
$ find /root -perm /u=r
16) Trova tutti i file di proprietà di un utente
Per individuare tutti i file di proprietà di un particolare utente, ad esempio linuxtechi, utilizzeremo il seguente comando,
$ find . -user linuxtechi
17) Trova tutti i file di proprietà di un gruppo
Per individuare tutti i file di proprietà di un particolare gruppo, usa
$ find . -group apache
18) Trova file di dimensioni particolari
Se vogliamo cercare un file di cui conosciamo la dimensione esatta, possiamo usare "-size ' opzione con comando trova per individuare il file
$ find / -size -2M
19) Trova tutti i file di dimensioni comprese
Se stiamo cercando un file di cui non conosciamo la dimensione effettiva ma conosciamo un intervallo di dimensioni o desideriamo semplicemente individuare tutti i file all'interno di un intervallo di dimensioni, possiamo anche individuare il file utilizzando quel criterio
$ find / -size +2M -size -5M
Possiamo anche usare il comando trova per individuare tutti i file la cui dimensione è maggiore di 50 MB
$ find / -size +50M
20) Trova i file modificati N giorni fa
Ad esempio, vogliamo individuare tutti i file che sono stati modificati 8 giorni fa. Possiamo farlo usando "-mtime ' opzione nel comando trova
$ find / -mtime 8
21) Trova i file a cui è stato effettuato l'accesso N giorni fa
Allo stesso modo, come nell'esempio sopra, possiamo anche individuare i file a cui è stato effettuato l'accesso 8 giorni fa utilizzando '-atime',
$ find / -atime 8
22) Trova tutti i file o le directory vuoti
Per individuare tutti i file vuoti sul sistema, useremo sotto comando
$ find / -type f -empty
Allo stesso modo, per individuare tutte le directory vuote
$ find ~/ -type d -empty
23) Trova i file più grandi e più piccoli
Per elencare il file più grande o più piccolo, combineremo "ordina ' comando con il comando trova e se vogliamo ulteriormente elencare i primi tre di quei file più grandi, combineremo 'head ' comando.
Per elencare i primi tre file nella directory corrente, il comando è
$ find . -type f -exec ls -s {} \; | sort -n -r | head -3
Allo stesso modo possiamo trovare i file più piccoli nella directory corrente,
$ find . -type f -exec ls -s {} \; | sort -n | head -3
24) Trova tutti i file con permessi specifici e cambiali in 644 (o altri permessi)
Con il comando trova, possiamo anche ottenere alcune funzionalità avanzate. Ad esempio, possiamo elencare tutti i file che hanno l'autorizzazione 644 e quindi modificare tali autorizzazioni in 777. Per fare ciò, esegui
$ find / -type f -perm 644 -print -exec chmod 777 {} \;
25) Trova tutti i file che corrispondono a un criterio ed eliminali
Potrebbe essere richiesto di individuare ed eliminare i file che corrispondono a un criterio. Per farlo con il comando trova, esegui
$ find / -type f -name 'linuxtechi.*' -exec rm -f {} \;
Questi sono stati alcuni semplici esempi che dimostrano la funzionalità del comando trova e può essere utilizzato per eseguire attività di ricerca/localizzazione noiose e ripetitive in modo più semplice.
Leggi anche :16 utili esempi di comandi "cp" per principianti di Linux