12 praktiske eksempler på Linux Xargs-kommandoer for nybegynnere


Xargs er en flott kommando som leser datastrømmer fra standardinndata, og deretter genererer og utfører kommandolinjer; betyr at den kan ta utdata fra en kommando og sende den som argument for en annen kommando. Hvis ingen kommando er spesifisert, kjører xargs ekko som standard. Du mange også instruere den til å lese data fra en fil i stedet for stdin.

Det er flere måter xargs er nyttig i daglig bruk av kommandolinjen. I denne artikkelen vil vi forklare 12 praktiske Linux xargs-kommandoer for nybegynnere.

1. Det første eksemplet viser hvordan du finner ut alle .png-bildene og arkiverer dem ved å bruke tar-verktøyet som følger.

Her muliggjør handlingskommandoen -print0 utskrift av hele filbanen på standardutdata, etterfulgt av et null-tegn og -0 xargs-flagg håndterer effektivt plass i filnavn.

find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. Du kan også konvertere muti-line-utdata fra ls-kommandoen til én linje ved å bruke xargs som følger.

ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. For å generere en kompakt liste over alle Linux-brukerkontoer på systemet, bruk følgende kommando.

cut -d: -f1 < /etc/passwd | sort | xargs

4. Forutsatt at du har en liste over filer, og du ønsker å vite antall linjer/ord/tegn i hver fil i listen, kan du bruke ls kommando og xargs for dette formålet som følger.

ls *upload* | xargs wc

5. Xarags lar deg også finne og rekursivt fjerne en katalog, for eksempel vil følgende kommando rekursivt fjerne DomTerm i katalogen Nedlastinger.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. På samme måte som den forrige kommandoen, kan du også finne alle filer som heter net_stats i gjeldende katalog og slette dem.

find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. Deretter bruker du xargs for å kopiere en fil til flere kataloger samtidig; i dette eksemplet prøver vi å kopiere filen.

echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. Du kan også bruke find-kommandoen, xargs og endre navn på kommandoer sammen til for å gi små bokstaver til alle filer eller underkataloger i en bestemt katalog.

find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Her er et annet nyttig brukseksempel for xargs, det viser hvordan du sletter alle filer i en katalog bortsett fra én eller få filer med en gitt filtype.

find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Som nevnt tidligere kan du instruere xargs til å lese elementer fra en fil i stedet for standardinndata ved å bruke -a-flagget som vist.

xargs -a rss_links.txt

11. Du kan aktivere detaljerthet ved å bruke -t-flagget, som forteller xargs å skrive ut kommandolinjen på standard feilutdata før den utføres.

find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Som standard avslutter/avgrenser xargs elementer med tomme mellomrom. Du kan bruke -d-flagget for å angi skilletegnet som kan være en enkelt tegn, en C-stil tegn escape som \n, eller en oktal eller heksadesimal escape kode.

I tillegg kan du også spørre brukeren om de skal kjøre hver kommandolinje og lese en linje fra terminalen, ved å bruke -p-flagget som vist (bare skriv y for ja eller n for nei).

echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

For mer informasjon, les man-siden for xargs.

man xargs 

Det var det for nå! Xargs er et kraftig verktøy for å bygge en kommandolinje; det kan hjelpe deg med å sende utdata fra én kommando som argument for en annen kommando for behandling. I denne artikkelen har vi forklart 12 praktiske xargs-kommandoer for nybegynnere. Del dine tanker eller spørsmål med oss via tilbakemeldingsskjemaet nedenfor.