Come usare il comando Trova in Linux

Quando si lavora in un ambiente UNIX, come in questo caso Linux, è ideale conoscere in dettaglio l'uso di alcuni comandi che ci aiuteranno con più attività, amministrative o personali. Uno di questi è il comando Trova che, come denota il nome, serve per trovare file o elementi che si trovano nel sistema operativo in modo semplice ma funzionale e completo.

Quando decidiamo di utilizzare il comando find, possiamo cercare e individuare l'elenco di file o directory in base alle condizioni che indichiamo nella sintassi di utilizzo da eseguire. Successivamente vedremo cos'è il comando find e come possiamo usarlo in Linux usando i suoi vari parametri.

Che cos'è trovare?Find è un comando all'interno delle distribuzioni Linux che è molto utile nonostante sia in qualche modo sconosciuto. È un comando che faciliterà il compito di trovare un file quando abbiamo molti file ed è davvero difficile trovarlo. Oltre ai file, puoi anche cercare o eliminare intere directory. Puoi cercare con filtri specifici come dimensione, nome, estensione, data…

Filtrare le ricerche con TrovaUno dei grandi vantaggi dell'utilizzo di questo comando è che possiamo filtrare i risultati in base a varie variabili come:

  • permessi
  • Gruppi
  • Utenti
  • Tipo di file
  • Data di creazione o modifica
  • Dimensioni e più opzioni disponibili

Solvetic spiegherà vari metodi per utilizzare efficacemente il comando Trova in Linux e per questo caso utilizzeremo Ubuntu 19.04. Vedremo come possiamo usare il comando find per trovare e cercare file con filtri usando il terminale Linux.

1. Come cercare file per nome o estensione con i comandi in Linux


Questa è la parte più essenziale dell'utilizzo del comando Trova e per questo è necessario conoscere il nome dell'oggetto o la sua estensione (.mp4, .txt, .Jpg.webp, ecc.) per ottenere un risultato diretto.

Passo 1
Ad esempio, vogliamo trovare un file chiamato Solvetic.docx che si trova in una cartella sul desktop, in questo caso dobbiamo navigare in quel percorso e quindi eseguire quanto segue:

 find -name Solvetic.docx 
Passo 2
Di conseguenza vedremo la cartella in cui è ospitato detto file (se applicabile):

Passaggio 3
Al contrario, se vogliamo vedere tutti i file con un'estensione specifica, come .docx, eseguiremo quanto segue:

 trova -nome "* .docx"
Passaggio 4
L'asterisco elenca tutti i file con questa estensione

Passaggio 5
La sintassi generica per il comando Trova è la seguente:

 trova [-H] [-L] [-P] [percorso…] [espressione] 
Passaggio 6
Questi parametri sono:

-HNon segue i collegamenti simbolici, solo se vengono elaborati gli argomenti della riga di comando.

-LSegui i link simbolici.

-PNon segue mai i collegamenti simbolici ed è l'opzione predefinita

Passaggio 7
L'opzione [percorso…] indica la posizione in cui deve essere effettuata la ricerca su Linux. Il parametro [espressione] può essere operatori, opzioni, test o azioni da eseguire, vediamo che, per impostazione predefinita, il comando Trova ignorerà i collegamenti simbolici disponibili, ma con -L li cercheremo per risultati più completi.
Ci sono tre livelli di ottimizzazione che possiamo selezionare quando eseguiamo Trova, questi sono:

  • -O1
  • -O2
  • -O3

Passaggio 8
Il valore -O1 è l'opzione predefinita e la sua funzione è quella di forzare il comando Trova a cercare in base al nome del file che abbiamo definito. Il livello -O2 si occupa di dare la priorità ai filtri del nome del file, quindi eseguirà tutti i filtri in base al tipo di file e successivamente utilizzerà altre condizioni per risultati completi e il livello -O3 esegue un'ottimizzazione più profonda utilizzando tutte le risorse al massimo .

Trova opzioni di comandoLe opzioni generali di ricerca sono:

  • -O1: valore di default, è un filtro basato sul nome del file indicato.
  • -O2: cerca prima per nome file e poi per tipo
  • -O3: esegui una ricerca che ordina automaticamente i risultati in base all'utilizzo delle risorse
  • -maxdepth X: cerca la directory corrente e le sottodirectory ai livelli X.
  • -iname: ricerca senza fare affidamento sul testo.
  • -not: restituisce solo i risultati che non corrispondono alla ricerca
  • -type f: cerca solo i file.
  • -type d: esegue la ricerca nella directory

2. Come trovare file per nome o estensione con comandi senza distinzione tra maiuscole e minuscole in Linux

Questo è un metodo che ci permette di trovare file e visualizzare i risultati che contengono maiuscole e minuscole:

 find -iname solvetic.docx 

Cerca nomi nelle directoryCon questo metodo possiamo rilevare tutte le directory denominate Solvetic nella home directory (/):

 trova / -type d -name Solvetic

Trova file senza permessi 777I permessi 777 (Rwxrwxrwx) con quei permessi che non hanno restrizioni, cioè qualsiasi utente può accedervi.
Per vedere i file che non hanno questa autorizzazione, eseguiremo quanto segue:

 trova / -digita f! -permanente 777 

Ora, se vogliamo vedere i file che hanno i permessi 777, eseguiremo:

 Trovare. -type f -perm 0777 -print 

Trova file SGID con permessi 2644I permessi 2644 sono file che hanno permessi di lettura e scrittura, quindi per vedere questi file eseguiremo:

 trova / -perm 2644

Trova i file SUID in LinuxI file SUID (Imposta ID utente proprietario al momento dell'esecuzione), sono permessi di file speciali concessi a un elemento e servono a concedere temporaneamente i permessi a un utente per eseguire un programma o un file con i permessi del proprietario del file.
Per vederli, eseguiremo quanto segue:

 trova / -perm / u = s

Cerca file SGIDI file SGID (Set Group ID up on execution) sono un tipo speciale di permessi di file con cui è possibile ereditare i permessi di accesso dell'utente che ha effettuato il login. Per visualizzare questi file, eseguiremo quanto segue:

 trova / -perm / g = s

Trova file di sola letturaPer vedere quali sono i file di sola lettura in Linux eseguiremo:

 trova / -perm / u = r

Cerca file eseguibiliSe vogliamo sapere con certezza quali file sono eseguibili, possiamo utilizzare la seguente riga:

 trova / -perm / a = x

3. Come trovare file con permessi 777 e chmod 755 su Linux

Passo 1
Questi sono permessi speciali di lettura e scrittura, per vedere questi file che eseguiremo:

 find / -type d -perm 777 -print -exec chmod 755 {} \;

Passo 2
Ora, se vogliamo trovare i file con i permessi 777 e chmod 644, eseguiamo:

 find / -type f -perm 0777 -print -exec chmod 644 {} \;

4. Trova ed elimina file con i comandi in Linux

Trova ed elimina un fileCon Trova possiamo rilevare un file e procedere con la sua cancellazione, in questo caso elimineremo il file solvetic.docx per il quale eseguiamo quanto segue:

 Trovare. -type f -name "solvetic.docx" -exec rm -f {} \; 

Se vogliamo eliminare più file, possiamo usare la loro estensione:

 Trovare. -type f -name "* .docx" -exec rm -f {} \;

Cerca file o directory vuotiPossiamo specificare un percorso, come /tmp, per trovare le directory vuote, in questo caso eseguiamo quanto segue:

 trova / tmp -type d -empty

Per cercare file vuoti eseguiamo:

 trova / tmp -type f -empty

Trova file nascostiIn Linux, e in tutti i sistemi, alcuni file sono nascosti per motivi di sicurezza, se per qualche attività amministrativa o di supporto è necessario vedere quali sono, possiamo eseguire il seguente comando con il percorso desiderato, in questo caso home:

 trova / home -type f -name ". *"

Trova i file di un utenteUn'altra delle tante opzioni che il comando Trova ci offre è quella di rilevare i file di un particolare utente, ad esempio, per trovare tutti i file dell'utente solvetic nella directory home eseguiremo quanto segue:

 trova / home -utente solvetic

Trova file da un particolare gruppoPer trovare gli elementi di un gruppo eseguiremo la seguente riga:

 trova / home -group solvetic

5. Trova i file in un intervallo di tempo con i comandi in Linux

Passo 1
Con il comando Trova sarà possibile ricercare i file che sono stati utilizzati in un intervallo di tempo, ad esempio per vedere i file degli ultimi 30 giorni che sono stati modificati possiamo eseguire:

 trova / -mtime 30 

Passo 2
Per vedere i file che hanno presentato l'accesso eseguiamo:

Passaggio 3
Per vedere i file modificati in un intervallo di giorni, tra 1 e 5 ad esempio, utilizzeremo la seguente riga:

 trova / -mtempo +1 -mtempo -5

Passaggio 4
Se vogliamo vedere i file che hanno presentato modifiche nell'ultima ora o negli ultimi minuti, possiamo eseguire quanto segue:

 trova / -cmin -45
Passaggio 5
Questo elencherà i file degli ultimi 45 minuti:

Passaggio 6
Allo stesso modo, possiamo elencare i file a cui è stato effettuato l'accesso in un intervallo di tempo:

 trova / -amin -60 

6. Trova file di una dimensione specifica con i comandi in Linux

Passo 1
È possibile definire una dimensione del file all'interno dei criteri di ricerca, quindi, per vedere tutti i file il cui peso è 10 MB eseguiamo:

 trova / -taglia 10M

Passo 2
Per stabilire un intervallo di peso utilizzeremo:

 trova / -taglia + 15M -taglia -90M

Passaggio 3
Se per qualche motivo vogliamo rilevare ed eliminare un file con una dimensione specifica, utilizzeremo la seguente sintassi:

 trova / -size + 200M -exec rm -rf {} \;
NotaLa versione di find in Unix ha diversi difetti, quindi dobbiamo modificare il nostro comando per ottenere il risultato desiderato, ad esempio:

  • Su Linux
 Trovare. -taglia 50M | xargs ls -l
  • Su Unix
 Trovare. -size 50M -print0 | xargs -0 ls -l 
A livello di script tutti i risultati con find sono positivi indipendentemente dal fatto che otteniamo o meno risultati, in linux abbiamo l'opzione -print -quit in caso di non ottenere risultati.

La versione Unix di Trova manca di questa opzione ed è meglio usarla insieme a grep per verificare il risultato, ad esempio.

 leggi -r a se trova. -maxdepth 1 -name "$ a" -print -quit | grep -q. then echo "File trovato" else echo "Nessun file trovato" if

7. Trova i file graficamente in Linux


Le attuali distribuzioni Linux, con un ambiente grafico (GUI), ci offrono la possibilità di utilizzare il motore di ricerca integrato per rilevare facilmente i file desiderati, nel caso di Ubuntu 19.04, possiamo accedere a File e nel campo di ricerca inserire il termine desiderato per visualizzare immediatamente i risultati associati:

INGRANDIRE

Vediamo come la ricerca di file in Linux sia qualcosa di veramente completo grazie al comando Trova e alle sue varie varianti per ottenere i migliori risultati a seconda dei casi.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave