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


Xargs je sjajna naredba koja čita tokove podataka sa standardnog unosa, zatim generira i izvršava naredbene retke; što znači da može uzeti izlaz naredbe i proslijediti ga kao argument druge naredbe. Ako nije navedena naredba, xargs prema zadanim postavkama izvršava echo. Mnogi mu također daju upute da čita podatke iz datoteke umjesto stdin.

Postoji nekoliko načina na koje je xargs koristan u svakodnevnom korištenju naredbenog retka. U ovom ćemo članku objasniti 12 praktičnih primjera Linux xargs naredbi za početnike.

1. Prvi primjer pokazuje kako pronaći sve .png slike i arhivirati ih pomoću uslužnog programa tar na sljedeći način.

Ovdje akcijska naredba -print0 omogućuje ispis cijele putanje datoteke na standardnom izlazu, nakon čega slijedi nulti znak i -0 xargs oznaka učinkovito 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 pretvoriti višeredni izlaz iz naredbe ls u jedan red koristeći xargs kako slijedi.

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

3. Za generiranje kompaktnog popisa svih Linux korisničkih računa na sustavu, koristite sljedeću naredbu.

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

4. Pod pretpostavkom da imate popis datoteka i želite znati broj redova/riječi/znakova u svakoj datoteci na popisu, možete koristiti naredbu ls i xargs za ovu svrhu kako slijedi.

ls *upload* | xargs wc

5. Xarags vam također omogućuje pronalaženje i rekurzivno uklanjanje direktorija, na primjer sljedeća naredba ć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 upotrijebite xargs za kopiranje datoteke 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 za traženje, xargs i naredbe za preimenovanje zajedno da preimenujete sve datoteke ili poddirektorije u određenom direktoriju u mala slova kako slijedi.

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 s određenim nastavkom.

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 oznaku -a kao što je prikazano.

xargs -a rss_links.txt

11. Opširnost možete omogućiti pomoću zastavice -t koja govori xargs da ispiše naredbeni redak na standardnom izlazu pogreš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 prazne razmake, možete koristiti zastavicu -d za postavljanje razdjelnika koji može biti jedan znak, izlazni znak u stilu C kao što je \n ili oktalni ili heksadecimalni izlazni kod.

Osim toga, također možete pitati korisnika hoće li pokrenuti svaku naredbenu liniju i pročitati liniju s terminala, koristeći oznaku -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 stranicu priručnika xargs.

man xargs 

To je to za sada! Xargs je moćan uslužni program za izradu naredbenog retka; može vam pomoći proslijediti izlaz jedne naredbe kao argument druge naredbe za obradu. U ovom smo članku objasnili 12 praktičnih primjera naredbi xargs za početnike. Podijelite svoje misli ili pitanja s nama putem donjeg obrasca za povratne informacije.