Hvordan bruke Xargs med Find in Linux

Hvordan bruke Xargs med Find in Linux
Denne opplæringen forklarer hvordan du bruker kommandoene XArgs og finner ut til å gjøre kombinert operasjoner.

Etter å ha lest denne opplæringen, kan du søke på filer ved hjelp av Find -kommandoen og utføre en spesifikk kommando basert på matchede resultater.

Instruksjoner og eksempler er nyttige for de fleste Linux -distribusjoner. Innholdet er optimalisert både for nye og erfarne Linux -brukere.

Alle trinnene beskrevet i denne artikkelen inneholder skjermbilder for å gjøre det enkelt for alle Linux -brukere å forstå og anvende dem.

Brukseksempler inkludert i denne artikkelen er følgende:

  • Finn og slett filer i forlengelse (filtype).
  • Finn og slett filer med navn.
  • Finn og endre filtillatelser basert på gjeldende tillatelser.

Kort introduksjon å finne og XArgs -kommandoer

De xargs Kommando, kombinert med andre kommandoer som finne, Bruker utgangen fra den første kommandoen som et argument.

La oss for eksempel kjøre finne kommando for å identifisere filer med en spesifikk utvidelse eller filtype. Vi kan legge til xargs Kommando for å utføre en handling for alle filer som samsvarer med utvidelsen som er spesifisert til finne.

Som du kan se i følgende linje, skiller et rør kommando 1 og kommando 2, der kommando 1 kan være hvilken som helst kommando som ls, og kommando 2, inkludert Xargs -kommandoen, etterfulgt av en spesifikk handling som katt.

[Kommando 1] | [Kommando 2]

Det aktuelle eksemplet vil være:

ls | Xargs Cat

Denne kommandoen vil liste opp alle filer i den gjeldende katalogen. Da vil utdataene (listede filer) bli brukt av XArgs som et argument, og innholdet deres vil bli skrevet ut som instruert av Xargs Cat. Se følgende skjermbilde:

Hvordan du finner og flytter filer ved hjelp av xargs

Den første delen av denne opplæringen forklarer hvordan du bruker Finn og XArgs -kommandoer for å søke og flytte filer som samsvarer med en tilstand, i dette tilfellet filtypen.

La oss begynne med å finne filer i forlengelse av og flytte dem til en spesifikk katalog ved hjelp av xargs.

Før du begynner, kjør ls Kommando for å vise filer og kataloger i min underkatalog som heter Testdir.

ls

Som du ser er det forskjellige filtyper, inkludert .tekst, .c, og filer uten utvidelser. Vær også oppmerksom på tutorialDir katalog.

La oss anta at du vil flytte filer med en spesifikk utvidelse til en katalog. Syntaksen er følgende:

finne -Navn '*.'-Type f | xargs mv -t

I forrige syntaks, -Navn Alternativet går foran filnavnet eller tilstanden basert på filnavnet. De -type f Alternativet spesifiserer at Find -kommandoen tar for seg filer og ikke kataloger. De -t Alternativ før destinasjonskatalogen brukes til å definere målkatalogen. Vær oppmerksom på jokertegnet (*) før utvidelsen, instruere kommandoen Finn å søke i alle filer i den spesifiserte utvidelsen uavhengig av navnet.

Dermed, hvis du vil flytte alle .tekst filer til katalogen som heter tutorialDir, Utfør følgende kommando:

finne . -Navn '*.txt '-Type F | xargs mv -t tutorialDir

Som du kan se, etter å ha kjørt ls Kommando to ganger ble filene flyttet fra den gjeldende katalogen til tutorialDir underkatalog.

Syntaksen er den samme for alle filtyper. La oss gjenta det, denne gangen for .c Filer:

finne . -Navn '*.C '-Type F | xargs mv -t tutorialDir

Den første LS -kommandoen viser tre .c Filer i gjeldende katalog. Etter å ha kjørt Find -kommandoen med Xargs, viser trekommandoen alle .C -filer ble flyttet til tutorialDir Katalog, hvor .tekst Filer ble ført i forrige eksempel.

Finn og slett filer og kataloger med navn med XArgs

Syntaksen for å finne og slette filer ved hjelp av XArgs er følgende:

finne -Navn | XArgs RM

Dette er hvor er overordnet katalog du søker på filer, og er navnet på filen du vil finne og fjerne.

La oss se det nåværende scenariet i følgende skjermbilde:

ls

I det første eksemplet, velg filer etter type, som gjort i forrige seksjon, for å fjerne dem, som vist nedenfor:

finne . -Navn "*.c "| xargs rm

Som du ser ovenfor, alt .c Filer ble slettet vellykket.

Nå er scenariet følgende:

ls

I det nåværende eksemplet vil jeg bruke jokertegnet til å fjerne alle filer hvis navn starter med "fil”, Uavhengig av navnet på navnet.

finne . -Navn "Fil*" | XArgs RM

Til nå forklarte denne artikkelen hvordan du skal håndtere filer. La oss nå se hvordan du bruker Finn og Xargs med kataloger. I det nye scenariet er det fem nye kataloger: dir1, Dir2, dir3, dir4, og dir5, Som vist i følgende bilde:

ls

Forutsatt at du vil fjerne alle kataloger med navn som begynner med "dir”, Kjør den samme kommandoen. Imidlertid, etter RM -kommandoen, legg til -r Flagg som brukes til å håndtere kataloger, som vist i følgende figur:

finne . -Navn "Dir*" | xargs rm -r

Finn og slett filer basert på tillatelser

Denne delen beskriver å finne filer etter spesifikke tillatelser og endre dem ved hjelp av XArgs.

Som du kan se nedenfor, filer noe1.txt, noe2.tekst, og noe3.tekst har fulle tillatelser for alle (777).

ls -l

Syntaksen for å finne filer med tillatelse og endre dem vises nedenfor:

finne -perm | Xargs chmod

For å finne alle filer med full tillatelser til alle (777) i den gjeldende katalogen og endre dem til full tillatelser for eieren og lese og utføre tillatelser for gruppebrukere og andre (755), kjør kommandoen utført i det følgende:

finne . -PERM 777 | Xargs Chmod 755

Konklusjon

Som du kan se, er Xargs -kommandoen, kombinert med Find -kommandoen, praktisk for bulkoppgaver eller spesifikke oppgaver når du ikke kjenner et filplassering. Begge kommandoene er enkle å implementere og kan integreres av nye brukere for å lette opplevelsen med Linux -terminalen. Finn og XArgs er grunnleggende Linux -kommandoer enhver Linux -bruker må vite hvordan de skal søke. Xargs kan kombineres med andre grunnleggende kommandoer som ls. Instruksjonene som er forklart ovenfor er nyttige for alle Linux -distribusjoner.

Sjekk ut flere artikler for flere Linux -tips og opplæringsprogrammer.