find command unix
Introduzione al comando Trova in Unix: cerca file e directory con il comando Trova file di Unix
Il comando Unix find è una potente utility per cercare file o directory.
La ricerca può essere basata su diversi criteri e i file corrispondenti possono essere eseguiti attraverso azioni definite. Questo comando discende in modo ricorsivo la gerarchia dei file per ogni percorso specificato.
=> Fare clic qui per la serie completa di tutorial Unix
Cosa imparerai:
il modo migliore per convertire i video di YouTube in mp3
Trova il comando in Unix
Sintassi:
find (options) (paths) (expression)
Le opzioni di questo comando vengono utilizzate per specificare come devono essere trattati i collegamenti simbolici. Questo è seguito dall'insieme di percorsi in cui cercare. Se non viene specificato alcun percorso, viene utilizzata la directory corrente. L'espressione data viene quindi eseguita su ciascuno dei file trovati nei percorsi.
L'espressione è costituita da una serie di opzioni, test e azioni, ciascuno dei quali restituisce un valore booleano. L'espressione viene valutata da sinistra a destra per ogni file nel percorso finché non viene determinato il risultato, ovvero il risultato è noto per essere vero o falso.
- Le espressioni di opzione vengono utilizzate per vincolare l'operazione di ricerca e restituiscono sempre true.
-
- -depth: elabora il contenuto della directory prima di elaborare la directory stessa.
- -maxdepth: i livelli massimi al di sotto dei percorsi forniti per scendere per una partita.
- -mindepth: i livelli minimi oltre i percorsi forniti per scendere prima della corrispondenza.
-
- Le espressioni di test vengono utilizzate per valutare proprietà specifiche dei file e restituire di conseguenza true o false. (Ovunque venga utilizzato un conteggio 'n': senza alcun prefisso la corrispondenza è per il valore esatto di n; con un prefisso '+', la corrispondenza è per valori maggiori di n; e con un prefisso '-', la corrispondenza è per valori inferiori a n.)
-
- -atime n: restituisce true se il file è stato eseguito n giorni fa.
- -ctime n: restituisce vero se lo stato del file è stato modificato n giorni fa.
- -mtime n: restituisce vero se il contenuto del file è stato modificato n giorni fa.
- -name pattern: restituisce true se il nome del file corrisponde al modello di shell fornito.
- -iname pattern: restituisce true se il nome del file corrisponde al modello di shell fornito. La corrispondenza qui non fa distinzione tra maiuscole e minuscole.
- -path pattern: restituisce true se il nome del file con il percorso corrisponde al pattern della shell.
- -regex pattern: restituisce true se il nome del file con il percorso corrisponde all'espressione regolare.
- -size n: restituisce true se la dimensione del file è n blocchi.
- -perm - mode: restituisce true se tutti i bit di autorizzazione per mode sono impostati per il file.
- -type c: restituisce true se il file è di tipo c (ad es. 'b' per file di dispositivo a blocchi, 'd' per directory e così via).
- -username: restituisce true se il file è di proprietà del nome utente 'nome'.
-
- Le espressioni di azione vengono utilizzate per definire azioni che hanno effetti collaterali e possono restituire vero o falso. Se non vengono specificate azioni, l'azione '-print' viene eseguita per tutti i file corrispondenti.
-
- -delete: elimina il file corrispondente e restituisce true in caso di successo.
- -exec command: esegue il comando specificato per ogni file corrispondente e restituisce true se il valore restituito è 0.
- -ok comando: come l'espressione 'exec', ma conferma prima con l'utente.
- -ls: elenca il file corrispondente nel formato 'ls -dils'.
- -print: stampa il nome del file corrispondente.
- -prune: se il file è una directory, non scendere in essa e restituire true.
-
- L'espressione viene valutata da sinistra a destra e viene assemblata utilizzando i seguenti operatori.
-
- ( expr ) : Utilizzato per forzare la precedenza.
- ! expr: utilizzato per negare un'espressione.
- expr1 -per expr2: il risultato è una 'e' delle due espressioni. Expr2 viene valutato solo se expr1 è vero.
- expr1 expr2: l'operatore 'and' è implicito in questo caso.
- expr1 -o expr2: il risultato è un 'or' delle due espressioni. Expr2 viene valutato solo se expr1 è falso.
-
Esempi
Elenca tutti i file trovati nella directory corrente e nella relativa gerarchia
$ find.
Elenca tutti i file trovati nella gerarchia corrente e tutta la gerarchia sotto / home / xyz
$ find. /home/XYZ
Cerca un file con il nome abc nella directory corrente e nella sua gerarchia
$ find ./ -name abc
Cerca una directory con il nome xyz nella directory corrente e nella sua gerarchia
$ find ./ -type d -name xyz
Cerca un file con il nome abc.txt sotto la directory corrente e chiedi all'utente di eliminare ogni corrispondenza.
Tieni presente che la stringa '{}' viene sostituita dal nome file effettivo durante l'esecuzione e che la stringa ';' stringa viene utilizzata per terminare il comando da eseguire.
$ find ./ -name abc.txt -exec rm -i {} ;
Cerca i file che sono stati modificati negli ultimi 7 giorni sotto la directory corrente
$ find ./ -mtime -7
Cerca i file con tutte le autorizzazioni impostate nella gerarchia corrente
$ find ./ -perm 777
Conclusione
In breve, Find Command in Unix restituisce tutti i file sotto la directory di lavoro corrente. Inoltre, il comando find consente all'utente di specificare un'azione da intraprendere su ogni file corrispondente.
=> Fare clic qui per la serie completa di tutorial Unix
Lettura consigliata
- Comando Taglia in Unix con esempi
- Comando Ls in Unix con esempi
- Manipolazione dei file in Unix: panoramica del file system Unix
- Sintassi dei comandi Cat Unix, opzioni con esempi
- Comando Grep in Unix con semplici esempi
- Comando di ordinamento Unix con sintassi, opzioni ed esempi
- Comando Tar in Unix per creare backup (esempi)
- Come confrontare due file in Unix: comandi di confronto dei file