Il comando Find -Exec su Linux

Il comando Find -Exec su Linux

Il tuo sistema Linux è costituito da migliaia di file. Cercarli manualmente è una seccatura. In tali casi, il sistema Linux offre due comandi distinti per trovare un file particolare: il comando LOCATE e il comando Trova. Il comando Find, in particolare, è un ottimo strumento quando si desidera specificare gli attributi del file e perfezionare la ricerca di un file. Usando il comando Trova, puoi anche agire sul file che trovi usando l'argomento Exec. In questo tutorial, discuteremo del comando Find -Exec.

Il comando di ricerca

Il comando Find è più lento del comando Locate, ma cerca l'intero System Live! Inoltre, usando il comando Trova, puoi perfezionare la ricerca utilizzando un gran numero di attributi. Ciò che significa in inglese è che puoi perfezionare la tua ricerca usando quasi tutti i parametri che desideri. Ad esempio, è possibile cercare file utilizzando il nome del file, la dimensione del file, l'autorizzazione del file, i tempi di modifica del file, ecc. Fondamentalmente, è un comando molto utile!

Il formato di base del comando Find è il seguente:

Trova [luogo da cercare]

Ex:

Trova / -name segreto.TXT

Qui, il / rappresenta il luogo per cercare il file che desideriamo e gli abbiamo chiesto di cercare un file con il nome di segreto.TXT.

Trova il dirigente

La migliore caratteristica del comando Trova è il suo argomento Exec che consente all'utente Linux di eseguire qualsiasi comando sui file che si trovano. In altre parole, le azioni possono essere eseguite sui file che si trovano.

Il comando Find -Exec prenderà il seguente formato:

Trova [percorso] [argomenti] -exec [comando] [segnaposto] [delimitatore]

Dobbiamo conoscere alcune cose prima di poter usare l'argomento Exec:

  1. è chiamato segnaposto. Questo segnaposto terrà il risultato trovato da Find.

Quindi, se diciamo che stiamo cercando un file chiamato segreto.txt, allora scriviamo:

Trova / -name segreto.TXT

Questo troverà un sacco di file sul mio sistema quando voglio eseguire un comando. Invece di scrivere il nome del file trovato, lo sostituiremo con esso il segnaposto .

Per esempio,

Trova / -name 'segreto.txt '2> /dev /null -exec cat \;

Nota: In questo caso, lasciami anche sottolineare cosa fa il 2> /dev /null. Il 2 sta per un errore standard, che vogliamo ignorare. Quindi lo inviamo a /dev /null. In sostanza, stiamo prendendo gli errori e li stiamo buttando via.

Per ora, ignoriamo il \; parte e concentrati sul segnaposto. Perché abbiamo aggiunto il dopo la parola "gatto"? Bene, troverà il file che sto cercando, e poi quando lo avrà trovato, passerà il file all'argomento Exec come questo:

-Exec Cat \;

O

-Exec Cat/Home/Kalyani/Secret.TXT \;

Quindi, è un segnaposto per i risultati buttati fuori dal comando!

  1. \; è un delimitatore.

\; è un delimitatore. Questo particolare delimitatore è come può finire l'argomento di ricerca. Quando termina in questo modo, viene intrapresa un'azione su ciascun risultato che trova.

Ad esempio, ho creato tre segreti.File TXT: segreto.txt, segreto2.txt e secret3.TXT.

Ora, ho intenzione di emettere il seguente comando:

Trova / -name 'segreto*.txt '2> /dev /null -exec cat \;

Come puoi vedere dall'immagine, ha trovato i tre file e ha ottenuto il loro contenuto uno per uno. Quindi, cosa fa il \; Fare? Bene, garantisce che l'azione sia intrapresa su ogni file. In questo caso, abbiamo tre file. Il comando Cat viene applicato per la prima volta al primo risultato: Secret2.TXT. Quindi, viene applicato al secondo risultato: Secret3.TXT. Infine, viene applicato al terzo risultato: segreto.TXT.

Qui, quando usi -Exec Cat \; discussione, Esegue quanto segue:

gatto segreto2.TXT;
CAT Secret3.TXT;
CAT SEGRETO.TXT;
  1. \+ è un altro delimitatore.

Questo è un altro tipo di delimitatore. Se e quando viene utilizzato, viene intrapresa un'azione sui risultati trovati.

Per esempio:

Trova / -name 'segreto*.txt '2> /dev /null -exec ls \+

La seguente immagine ti mostrerà la differenza tra \; e il \+:


Qui, quando tu usa -exec ls \; discussione, Esegue quanto segue:

LS Secret2.TXT;
LS Secret3.TXT;
LS segreto.TXT;

Mentre -Exec \+ argomento esegue quanto segue:

LS Secret2.txt secret3.txt segreto.TXT;

Più dirigenti

Ora, più argomenti -exec possono anche essere passati al comando.

Il formato generale sarà il seguente:

Trova [Path] [Arguments] -Exec [Command_1] [Placeholder] [Delimiter] -Exec [Command_2] [Placeholder] [Delimiter]… -exec [Command_n] [Placeholder] [Delimiter]

Per esempio:

Trova / -name 'segreto*.txt '2> /dev /null -exec ls \; -exec cat \;

Qui, come puoi vedere, prende il primo risultato e lo passa attraverso il primo comando. Quindi, lo passa attraverso il secondo comando, quindi va al secondo risultato.

In sostanza, i risultati sono passati come segue:

LS Secret2.TXT; gatto segreto2.TXT;
LS Secret3.TXT; CAT Secret3.TXT;
LS segreto.TXT; CAT SEGRETO.TXT;

Un altro esempio:

Trova / -name 'segreto*.txt '2> /dev /null -exec ls \+ -exec cat \+

In questo caso, i risultati vengono approvati come segue:

LS Secret2.txt secret3.txt segreto.TXT; gatto segreto2.txt secret3.txt segreto.TXT;

Conclusione

Linux è un sistema meraviglioso con un file gazillion. Tuttavia, viene fornito con solo due comandi distinti per cercare attraverso il pagliaio per il nostro ago. Il migliore di questi due comandi è il comando Trova. I comandi di ricerca si ricercano nell'intero system del file in modo che ci vorrà un po 'di tempo. Inoltre, può intraprendere azioni sui risultati trovati. Ciò significa che è possibile applicare vari comandi sui file che si trovano. Se vuoi spostarli, se vuoi rimuoverli o addirittura fare cose folli ai risultati del comando Trova, puoi; La tua conoscenza è il limite. Quindi, la prossima volta che deve fare qualcosa per un file, puoi farlo usando il comando find -exec! Speriamo che tu abbia trovato questo articolo utile. Controlla gli altri articoli di suggerimento Linux per ulteriori suggerimenti e informazioni.