Come trovare file in Linux?
Pubblicato: 2022-04-07Sommario
Introduzione:
Trova è un'utilità della riga di comando UNIX che percorre una gerarchia di file. Puoi usarlo per trovare e operare su file e directory. File, cartelle, nomi, date di creazione, date di modifica, proprietari e autorizzazioni possono essere ricercati utilizzando questo comando.
Puoi ulteriormente combinarlo con l'opzione ' exec
' per eseguire varie azioni sui risultati trovati dal comando find
.
In questo articolo impareremo come trovare file in Linux usando il comando Trova .
Come funziona il comando Trova?
Find
individua i file sul tuo computer. Secondo le regole di precedenza, valuta ogni espressione, da sinistra a destra, all'interno di ogni albero di directory specificato dai percorsi dati. Nelle operazioni AND, o nelle operazioni OR, il risultato è "noto" quando il lato sinistro dell'espressione è TRUE o FALSE. Trova quindi passa al percorso successivo finché tutti i percorsi non sono stati esplorati.
Il comando find
è lo strumento più fondamentale e potente per lavorare con i file su un sistema Linux. I file possono essere individuati da soli o insieme ad altri programmi.
Sintassi:
find [options] [path…] [expression]
o
$ find [where to start searching from]
[l'espressione determina cosa trovare] [-opzioni] [cosa trovare]
- Il trattamento del collegamento simbolico, le opzioni di debug e la strategia di ottimizzazione sono tutti controllati dalla proprietà options .
- La proprietà path … specifica la directory o le directory da cui find cercherà i file.
- Opzioni, modelli di ricerca e azioni sono separati da operatori nell'attributo expression .
-exec CMD : il file cercato che soddisfa i criteri precedenti e restituisce 0 per uno stato di uscita dell'esecuzione del comando riuscita.
-ok CMD : simile a -exec, ma all'utente viene richiesto in anticipo.
-inum N : Cerca i file con il numero 'N' nell'inode.
-links N : trova i file che hanno collegamenti 'N'.
-name demo : Cerca i file con il nome 'demo' nel nome del file.
-newer file : cerca i file che sono stati aggiornati o creati da 'file.'
-perm octa l: se il permesso è 'ottale', cerca il file.
-print : stampa i nomi di percorso dei file identificati utilizzando i criteri rimanenti.
-empty : cerca file e cartelle vuoti.
-size +N/-N : Cerca i file con 'N' blocchi; 'N' seguito da 'c' può essere utilizzato per misurare la dimensione dei caratteri; '+N' indica dimensioni > 'N' blocchi, mentre '-N' indica dimensioni 'N' blocchi.
-nome utente: cerca i file con il nome utente 'nome' o l'ID 'nome'.
(expr ) : Se 'expr' è vero, allora vero; utilizzato per raggruppare i criteri con OR o AND.
! expr : True se 'expr' è falso.
Le opzioni (che influiscono sull'operazione generale anziché sull'elaborazione dei file e restituiscono sempre true), i test (che restituiscono un valore vero o falso) e le azioni (che hanno effetti collaterali e restituiscono un valore vero o falso) sono tutte separate da operatori nell'espressione . Quando l'operatore è assente, -e viene dedotto.
Se l'espressione non contiene azioni aggiuntive, -prune, -print viene applicato a tutti i file per i quali è true.
Ad esempio, diamo un'occhiata al seguente comando come esempio
find -L /var/www -name "*.js"
- L' opzione -L (opzioni) indica al comando trova di seguire i collegamenti simbolici.
- /var/www (percorso...) specifica la directory in cui verrà eseguita la ricerca.
- Il (espressione) -name "*.js indica a find di cercare i file che terminano con .js (file JavaScript).
Come trovare i file in Linux per nome
I file possono essere trovati per nome usando il comando trova . Puoi cercare un file in base al suo nome usando l'opzione -name.

find -type f -name functions.php

utilizzare -iname invece di -name, per eseguire una ricerca con distinzione tra maiuscole e minuscole
Come trovare file in Linux per estensione
Puoi cercare i file per estensione proprio come puoi cercare i file per nome.
find -type f -name '*.php'


per trovare i file senza l'estensione specificata, utilizzare il comando seguente
find -type f - not -name '*.php'


Trova i file per tipo
Se è necessario trovare un tipo di file specifico, come un file normale, una directory o un collegamento simbolico, potrebbe essere necessario cercare tipi di file specifici. Tutto in Linux è un file.
Specifica il tipo di file che stai cercando utilizzando l'opzione -type e uno dei seguenti descrittori:
- f: un file normale
- d: directory
- l: collegamento simbolico
- c: dispositivi di caratteri
- b: dispositivi di blocco
- p: named pipe (FIFO)
- s: presa
find public_html/wp-admin/ -type d

Trova i file per dimensione
Il parametro -size deve essere passato insieme al parametro size per trovare i file in base alla loro dimensione. I seguenti suffissi possono essere utilizzati per specificare la dimensione del file:
- b: blocchi da 512 byte (predefinito)
- c: byte
- w: parole a due byte
- k: kilobyte
- M: Megabyte
- G: Gigabyte
find . -type f -size -1M

Se vuoi cercare file con una dimensione maggiore di 1 MB usa +
find . -type f -size +1M

Puoi anche cercare file all'interno di un intervallo di dimensioni
find . -type f -size +1M -size 3M

Trova i file per modifica
Il comando trova può essere utilizzato anche per cercare i file in base a quando sono stati modificati, consultati o modificati l'ultima volta.
Usa i caratteri più e meno per "più di" e "minore di", proprio come faresti per la ricerca per dimensione.
find . -mtime +30 -daystart



Trova per autorizzazione
Puoi usare l'opzione -perm per cercare i file in base alle loro autorizzazioni.
find public_html/wp-admin/css -perm /444

/ viene utilizzato come prefisso, quindi almeno nella categoria deve avere almeno il rispettivo bit impostato affinché un file corrisponda.
-prefix, è necessario impostare almeno i bit specificati.
Trova per proprietario
Utilizzare i parametri -user e -group per trovare i file di proprietà di un determinato utente o gruppo.
find -user testc7963

Conclusione
Abbiamo dimostrato come applicare il comando trova con una varietà di criteri e argomenti.
Questo articolo dovrebbe fornire una comprensione di base su come trovare file su computer Linux.