- 1. Come cercare file per nome o estensione con i comandi in Linux
- 2. Come trovare file per nome o estensione con comandi senza distinzione tra maiuscole e minuscole in Linux
- 3. Come trovare file con permessi 777 e chmod 755 su Linux
- 4. Trova ed elimina file con i comandi in Linux
- 5. Trova i file in un intervallo di tempo con i comandi in Linux
- 6. Trova file di una dimensione specifica con i comandi in Linux
- 7. Trova i file graficamente 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.docxPasso 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 -45Passaggio 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 -lA 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.