12 praktičnih primjera Linux Xargs naredbe za početnike


Xargs je odlična komanda koja čita tokove podataka sa standardnog unosa, zatim generiše i izvršava komandne linije; što znači da može uzeti izlaz naredbe i proslijediti ga kao argument druge naredbe. Ako nije navedena naredba, xargs po defaultu izvršava echo. Mnogi ga također nalažu da čita podatke iz datoteke umjesto stdin-a.

Postoji nekoliko načina na koje je xargs koristan u svakodnevnoj upotrebi komandne linije. U ovom članku ćemo objasniti 12 praktičnih primjera Linux xargs naredbi za početnike.

1. Prvi primjer pokazuje kako pronaći sve slike .png i arhivirati ih koristeći uslužni program tar kako slijedi.

Ovdje, akciona naredba -print0 omogućava ispis pune putanje datoteke na standardnom izlazu, nakon čega slijedi null karakter i -0 xargs zastavica efektivno rješava prostor u nazivima datoteka.

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

2. Također možete konvertirati višelinijski izlaz iz komande ls u jedan red koristeći xargs kako slijedi.

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

3. Za generiranje kompaktne liste svih Linux korisničkih računa na sistemu, koristite sljedeću naredbu.

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

4. Pod pretpostavkom da imate listu fajlova i želite da znate broj redova/reči/karaktera u svakom fajlu na listi, možete koristiti komandu ls i xargs za ovu svrhu kako slijedi.

ls *upload* | xargs wc

5. Xarags vam također omogućava da pronađete i rekurzivno uklonite direktorij, na primjer sljedeća komanda će rekurzivno ukloniti DomTerm u direktoriju Preuzimanja.

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

6. Slično prethodnoj naredbi, također možete pronaći sve datoteke pod nazivom net_stats u trenutnom direktoriju i izbrisati ih.

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

7. Zatim koristite xargs da kopirate datoteku u više direktorija odjednom; u ovom primjeru pokušavamo kopirati datoteku.

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

8. Također možete koristiti naredbu find, xargs i preimenovati komande zajedno u da biste preimenovali sve datoteke ili poddirektorije u određenom direktoriju u mala slova na sljedeći način.

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

9. Evo još jednog korisnog primjera upotrebe za xargs, on pokazuje kako izbrisati sve datoteke unutar direktorija osim jedne ili nekoliko datoteka sa datom ekstenzijom.

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

10. Kao što je ranije spomenuto, možete uputiti xargs da čita stavke iz datoteke umjesto standardnog unosa koristeći -a zastavicu kao što je prikazano.

xargs -a rss_links.txt

11. Možete omogućiti opširnost pomoću oznake -t, koja govori xargs da odštampa komandnu liniju na standardnom izlazu greške prije nego što ga izvrši.

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

12. Prema zadanim postavkama, xargs završava/razgraničava stavke koristeći razmake, možete koristiti -d zastavicu da postavite graničnik koji može biti jedan znak, izlazni znak u C stilu kao što je \n, ili oktalni ili heksadecimalni izlazni kod.

Osim toga, također možete zatražiti od korisnika da li da pokrene svaku komandnu liniju i pročita liniju sa terminala, koristeći zastavu -p kao što je prikazano (jednostavno upišite y za da ili n za ne).

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

Za više informacija, pročitajte xargs man stranicu.

man xargs 

To je to za sada! Xargs je moćan uslužni program za izgradnju komandne linije; može vam pomoći da prosledite izlaz jedne naredbe kao argument druge naredbe za obradu. U ovom članku smo objasnili 12 praktičnih primjera naredbi xargs za početnike. Podijelite svoja razmišljanja ili pitanja s nama putem obrasca za povratne informacije ispod.