12 Praktiske eksempler på Linux Xargs Command til begyndere


Xargs er en fantastisk kommando, der læser datastrømme fra standardinput, derefter genererer og udfører kommandolinjer; hvilket betyder, at det kan tage output af en kommando og videregive det som argument for en anden kommando. Hvis der ikke er angivet nogen kommando, udfører xargs ekko som standard. I mange instruerer det også om at læse data fra en fil i stedet for stdin.

Der er flere måder, hvorpå xargs er nyttigt i daglig brug af kommandolinjen. I denne artikel vil vi forklare 12 praktiske Linux xargs-kommandoeksempler til begyndere.

1. Det første eksempel viser, hvordan du finder ud af alle .png -billederne og arkiverer dem ved hjælp af tar-hjælpeprogrammet som følger.

Her muliggør handlingskommandoen -print0 udskrivning af den fulde filsti på standardoutput efterfulgt af et null-tegn, og -0 xargs-flag behandler effektivt plads i filnavne.

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

2. Du kan også konvertere muti-line-output fra ls-kommandoen til en enkelt linje ved hjælp af xargs som følger.

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

3. Brug følgende kommando for at generere en kompakt liste over alle Linux-brugerkonti på systemet.

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

4. Forudsat at du har en liste over filer, og du ønsker at kende antallet af linjer/ord/tegn i hver fil på listen, kan du bruge ls kommando og xargs til dette formål som følger.

$ ls *upload* | xargs wc

5. Xarags giver dig også mulighed for at finde og fjerne rekursivt en mappe, for eksempel fjerner følgende kommando rekursivt DomTerm i mappen Downloads.

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

6. På samme måde som den forrige kommando kan du også finde alle filer med navnet net_stats i den aktuelle mappe og slette dem.

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

7. Brug derefter xargs til at kopiere en fil til flere mapper på én gang; i dette eksempel prøver vi at kopiere filen.

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

8. Du kan også bruge omdøbekommandoer sammen til at omdøbe alle filer eller underkataloger i et bestemt bibliotek til små bogstaver som følger.

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

9. Her er et andet nyttigt brugseksempel til xargs, det viser, hvordan du sletter alle filer i en mappe undtagen en eller få filer med en given udvidelse.

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

10. Som tidligere nævnt kan du instruere xargs om at læse emner fra en fil i stedet for standardinput ved hjælp af -a -flagget som vist.

$ xargs -a rss_links.txt

11. Du kan aktivere detaljerethed ved hjælp af -t -flagget, som fortæller xargs at udskrive kommandolinjen på standardfejloutputtet, før den udføres.

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

12. Som standard afslutter/afgrænser xargs elementer ved hjælp af blanke mellemrum, du kan bruge flagget -d til at indstille afgrænseren, som kan være et enkelt tegn, en C-stil tegnflugt såsom eller en oktal eller hexadecimal flugtkode.

Derudover kan du også bede brugeren om at køre hver kommandolinje og læse en linje fra terminalen ved hjælp af -p -flagget som vist (skriv y for ja eller n for no).

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

For mere information, læs mandsiden til xargs.

$ man xargs 

Det er det for nu! Xargs er et kraftfuldt værktøj til at opbygge en kommandolinje; det kan hjælpe dig med at sende output fra en kommando som et argument for en anden kommando til behandling. I denne artikel har vi forklaret 12 praktiske xargs-kommandoeksempler til begyndere. Del dine tanker eller spørgsmål med os via feedbackformularen nedenfor.