Find -exec -kommandoen på Linux

Find -exec -kommandoen på Linux

Linux -systemet ditt består av tusenvis av filer. Å søke etter dem manuelt er et problem. I slike tilfeller tilbyr Linux -systemet ditt to distinkte kommandoer for å finne en bestemt fil: Locate -kommandoen og Find -kommandoen. Spesielt Find-kommandoen er et flott verktøy når du vil spesifisere filattributter og finjustere søket etter en fil. Ved å bruke Find -kommandoen kan du til og med handle på filen du finner ved å bruke EXEC -argumentet. I denne opplæringen vil vi diskutere Find -Exec -kommandoen.

Finn -kommandoen

Finn -kommandoen er tregere enn lokalkommandoen, men den søker i hele filsystemet live! Ved å bruke Find-kommandoen kan du videreføre søket ditt ved å bruke et stort antall attributter. Hva dette betyr på engelsk er at du kan finjustere søket ditt ved å bruke nesten hvilken som helst parameter du ønsker. Du kan for eksempel søke etter filer ved å bruke navnet på filen, størrelsen på filen, tillatelse fra filen, modifiseringstidene til filen osv. I utgangspunktet er det en veldig nyttig kommando!

Det grunnleggende formatet til Find -kommandoen er som følger:

Finn [sted å søke]

Eks:

Finn / -navnet hemmelig.tekst

Her representerer / representerer stedet å søke etter filen vi ønsker, og vi har bedt den om å søke etter en fil ved hjelp av hemmelig navn.tekst.

Finn exec

Den beste funksjonen i Find -kommandoen er Exec -argumentet som lar Linux -brukeren utføre enhver kommando på filene som er funnet. Med andre ord, handlinger kan utføres på filene som blir funnet.

Find -exec -kommandoen vil ta følgende format:

finn [bane] [argumenter] -exec [kommando] [plassholder] [avgrensning]

Vi må lære om noen få ting før vi kan bruke EXEC -argumentet:

  1. kalles plassholder. Denne plassholderen vil holde resultatet funnet ved å finne.

Så hvis vi la oss si at vi leter etter en fil som heter Secret.txt, da ville vi skrevet:

Finn / -navnet hemmelig.tekst

Dette vil finne en hel haug med filer på systemet mitt når jeg vil utføre en kommando. I stedet for å skrive ut navnet på filen som er funnet, vil vi erstatte den med den plassholderen .

For eksempel,

finn / -navn 'hemmelighet.txt '2> /dev /null -exec cat \;

Merk: La meg i dette tilfellet også påpeke hva 2> /dev /null gjør. De 2 står for standardfeil, som vi vil ignorere. Dermed sender vi den til /dev /null. I hovedsak tar vi feilene og kaster dem bort.

For nå, la oss ignorere \; Del og konsentrer deg om plassholderen. Hvorfor la vi til etter ordet “Cat”? Vel, den vil finne filen jeg leter etter, og når den har funnet den, vil den gi filen til Exec -argumentet slik:

-Exec Cat \;

eller

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

Så det er en plassholder for resultatene som er chucked ut av Find -kommandoen!

  1. \; er en avgrenser.

\; er en avgrenser. Denne spesielle avgrenseren er hvordan funnargumentet kan ende. Når det ender på denne måten, tas en handling på hvert resultat den finner.

For eksempel har jeg laget tre hemmeligheter.TXT -filer: Hemmelighet.txt, hemmelighet2.txt, og hemmelighet3.tekst.

Nå skal jeg utstede følgende kommando:

finn / -navn 'hemmelig*.txt '2> /dev /null -exec cat \;

Som du ser av bildet, fant det de tre filene, og det kattet ut innholdet en etter en. Så hva gjør \; gjøre? Vel, det sikrer at det blir tatt handling på hver fil. I dette tilfellet har vi tre filer. CAT -kommandoen blir først brukt på det første resultatet: Secret2.tekst. Deretter brukes det på det andre resultatet: Secret3.tekst. Til slutt brukes det på det tredje resultatet: hemmelighet.tekst.

Her, når du bruker -Exec Cat \; argument, Den utfører følgende:

Cat Secret2.tekst;
Cat Secret3.tekst;
katthemmelighet.tekst;
  1. \+ er en annen avgrenser.

Dette er en annen type avgrensning. Hvis og når dette brukes, blir det iverksatt tiltak på resultatene som er funnet.

For eksempel:

finn / -navn 'hemmelig*.txt '2> /dev /null -exec ls \+

Følgende bilde vil vise deg forskjellen mellom \; og \+:


Her, når du bruk -exec ls \; argument, Den utfører følgende:

ls Secret2.tekst;
LS Secret3.tekst;
ls hemmelig.tekst;

Samtidig som -exec \+ argument utfører følgende:

ls Secret2.txt hemmelighet3.txt hemmelighet.tekst;

Flere eksekutører

Nå kan også flere -exec -argumenter sendes til kommandoen.

Det generelle formatet vil være som følger:

Finn [Path] [Arguments] -Exec [Command_1] [Placeholder] [avgrensning] -EXEC [Command_2] [Placeholder] [avgrensning]… -EXEC [Command_n] [Placeholder] [avgrensning]

For eksempel:

finn / -navn 'hemmelig*.txt '2> /dev /null -exec ls \; -exec Cat \;

Her, som du ser, tar det det første resultatet og gir det gjennom den første kommandoen. Deretter går den gjennom den andre kommandoen, og går deretter til det andre resultatet.

I hovedsak blir resultatene gitt som følger:

ls Secret2.tekst; Cat Secret2.tekst;
LS Secret3.tekst; Cat Secret3.tekst;
ls hemmelighet.tekst; katthemmelighet.tekst;

Et annet eksempel:

finn / -navn 'hemmelig*.txt '2> /dev /null -exec ls \+ -exec cat \+

I dette tilfellet blir resultatene gitt som følger:

ls Secret2.txt hemmelighet3.txt hemmelighet.tekst; Cat Secret2.txt hemmelighet3.txt hemmelighet.tekst;

Konklusjon

Linux er et fantastisk system med en gazillion -filer. Imidlertid kommer det med bare to distinkte kommandoer for å søke gjennom høystakken etter nålen vår. Den bedre av disse to kommandoene er Find -kommandoen. Finn -kommandoen søker gjennom hele filsystemet slik at det tar en stund. Videre kan det iverksette tiltak for resultatene som er funnet. Dette betyr at du kan bruke forskjellige kommandoer på filene som er funnet. Hvis du vil flytte dem, hvis du vil fjerne dem, eller til og med gjøre gale ting med resultatene av Find -kommandoen, kan du; Din kunnskap er grensen. Så neste gang for å måtte gjøre noe med en fil, kan du gjøre det ved å bruke Find -Exec -kommandoen! Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og informasjon.