Xargs

xargs er en kommando fra de Unix- og Unix-lignende operativsystemene , og mer generelt for POSIX [1] -systemene , som utfører en annen kommando som spesifiserer dataene som leses fra standardinngangen som parametere : hver linjelest utgjør en serie på en eller flere parametere atskilt med mellomrom. Du kan spesifisere en parameter som inneholder mellomrom ved å omslutte den i anførselstegn eller doble anførselstegn, eller ved å sette en omvendt skråstrek foran hvert mellomrom, og du kan spesifisere parametere som inneholder anførselstegn og doble anførselstegn ved å sette en omvendt skråstrek foran dem.

xargs er spesielt nyttig med kommandoer som godtar flere filnavn som parametere, for eksempel rm , grep eller cat : på denne måten er det mulig å utføre behandling på en liste over filer som tidligere er bestemt og lagret i en tekstfil , eller på annen måte bestemt i ikke en enkel måte, pass på å spesifisere navnene ved å bruke enkle anførselstegn, doble anførselstegn eller omvendt skråstrek der det er nødvendig.

xargs avhjelper også eventuelle systembegrensninger på antall og maksimal størrelse på parametere som kan spesifiseres til en kommando [2] [3] , ved å utføre den flere ganger for å falle innenfor disse grensene.

Syntaks

Den generelle syntaksen til xargs er:

xargs [ alternativer ] [-] [ kommando [ arg1 ...]]

Den valgfrie kommandoparameteren indikerer kommandoen som skal utføres, og arg - parameterne sine initiale parametere. Hvis kommandoen ikke er spesifisert, brukes ekkokommandoen .

Den doble bindestreken --(valgfritt) indikerer at følgende parametere ikke skal betraktes som alternativer.

Alternativer

Blant hovedalternativene er:

-t Skriver hele kommandolinjen til standardfeil før den utføres. -p Den ber brukeren om bekreftelse før hver utførelse. -I tag Utfører kommandoen én gang for hver lest linje, og erstatter tag- strengen i arg - parameterne . Dette er nyttig for eksempel for kommandoer som mv eller cp , hvor destinasjonen er spesifisert som siste parameter. -n numero Utfører kommandoen (gjentatte ganger om nødvendig) med maksimalt det angitte antallet parametere (i stedet for det maksimale tillatt av systemet). -s dimensione Utfører kommandoen (gjentatte ganger om nødvendig) slik at den totale størrelsen i byte på kommandolinjen ikke overskrider den angitte størrelsen (i stedet for den maksimale som er tillatt av systemet).

GNU -versjonen av xargs lar deg også spesifisere et spesifikt skilletegn for parameterne (for eksempel ASCII NUL, 0x00) og samtidig ikke vurdere spesielle anførselstegn, doble anførselstegn og omvendte skråstreker, slik at du også kan administrere parametere som inneholder mellomrom eller andre spesialtegn. Dette kombineres spesielt godt med -print0GNU-versjonsalternativet for find -kommandoen , som skiller filnavn med et ASCII NUL-tegn.

Eksempler

Starter fra gjeldende katalog ('.') Den søker rekursivt etter alle objekter av typen fil ('-type f') hvis navn slutter med '.c' (vanligvis C -kildefiler ) og viser filnavnene som inneholder strengen foobar(forutsatt at at filnavnene som ble funnet ikke inneholder mellomrom, anførselstegn eller anførselstegn):

finne. -type f -navn "* .c" -print | xargs grep -l "foobar"

Fjerner filer som ikke har blitt lest på mer enn 366 dager ved å bruke GNU-versjonen av finde xargs, og ber om bekreftelse:

finn / tmp -type f -atime +366 -print0 | xargs -0 -p rm -f -

Merknader

  1. ^ Xargs , i The Open Group Base Specifications, utgave 6 IEEE Std 1003.1 , 2004-utgaven . Hentet 2008-05-18 .
  2. ^ ( NO ) ARG_MAX (limits.h) , i The Open Group Base Specifications Issue 6IEEE Std 1003.1, 2004 Edition . Hentet 2008-05-19 .
  3. ^ Argumentlisten er for lang , i GNU Core Utilities Frequently Asked Questions . Hentet 2008-05-19 .

Relaterte elementer

Eksterne lenker