12 Praktični primeri ukazov Linux Xargs za začetnike


Xargs je odličen ukaz, ki bere tokove podatkov s standardnega vnosa, nato ustvarja in izvaja ukazne vrstice; kar pomeni, da lahko sprejme izpis ukaza in ga posreduje kot argument drugega ukaza. Če ukaz ni podan, xargs privzeto izvede echo. Mnogi mu tudi naročite, da namesto stdin bere podatke iz datoteke.

Obstaja več načinov, na katere je xargs uporaben pri vsakodnevni uporabi ukazne vrstice. V tem članku bomo razložili 12 praktičnih primerov ukazov Linux xargs za začetnike.

1. Prvi primer prikazuje, kako poiskati vse .png slike in jih arhivirati s pomočjo pripomočka tar na naslednji način.

Tu ukaz dejanja -print0 omogoča tiskanje celotne poti do datoteke na standardni izhod, ki mu sledi ničelni znak in -0 xargs zastavica učinkovito obravnava prostor v imenih datotek.

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

2. Izhod muti-line iz ukaza ls lahko pretvorite tudi v eno vrstico z uporabo xargs, kot sledi.

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

3. Če želite ustvariti kompakten seznam vseh uporabniških računov Linuxa v sistemu, uporabite naslednji ukaz.

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

4. Če imate seznam datotek in želite vedeti število vrstic/besed/znakov v vsaki datoteki na seznamu, lahko za ta namen uporabite ukaz ls in xargs, kot sledi.

$ ls *upload* | xargs wc

5. Xarags vam omogoča tudi iskanje in rekurzivno odstranitev imenika, na primer naslednji ukaz bo rekurzivno odstranil DomTerm v imeniku Prenosi.

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

6. Podobno kot prejšnji ukaz lahko najdete tudi vse datoteke z imenom net_stats v trenutnem imeniku in jih izbrišete.

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

7. Nato uporabite xargs za kopiranje datoteke v več imenikov hkrati; v tem primeru poskušamo kopirati datoteko.

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

8. Za preimenovanje vseh datotek ali podimenikov v določenem imeniku v male črke lahko uporabite tudi ukaze za preimenovanje, kot sledi.

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

9. Tu je še en uporaben primer uporabe xargs, ki prikazuje, kako izbrisati vse datoteke v imeniku, razen ene ali nekaj datotek z določeno razširitvijo.

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

10. Kot smo že omenili, lahko xargs z namesto standardnega vnosa z oznako -a , kot je prikazano, naročite, naj bere elemente iz datoteke.

$ xargs -a rss_links.txt

11. Omogočanje podrobnosti lahko uporabite z zastavico -t , ki xargsu pove, naj ukazno vrstico natisne na standardni izhod napake, preden jo izvede.

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

12. xargs privzeto zaključuje/razmejuje elemente s praznimi presledki, lahko z zastavico -d nastavite ločilo, ki je lahko en sam znak, umakni znak v slogu C, kot je \n ali oktalno ali šestnajstiško kodo za izhod.

Poleg tega lahko uporabnika tudi vprašate, ali naj zažene vsako ukazno vrstico in prebere vrstico s terminala, tako da uporabite zastavico -p , kot je prikazano (preprosto vnesite y za da ali n za ne).

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

Za več informacij preberite man stran xargs.

$ man xargs 

To je to zaenkrat! Xargs je zmogljiv pripomoček za izdelavo ukazne vrstice; lahko vam pomaga prenesti izhod enega ukaza kot argument drugega ukaza za obdelavo. V tem članku smo razložili 12 praktičnih primerov ukazov xargs za začetnike. Delite svoje misli ali vprašanja z nami preko spodnjega obrazca za povratne informacije.