Dæmi um notkun á "xargs" skipuninni

Lýsing og Inngangur

Xargs stjórnin er venjulega notuð í stjórn lína þar sem framleiðsla einum skipun er send á sem inntakargrind í aðra skipun.

Í mörgum tilvikum þarf ekki sérstaka stjórn eins og xargs til að ná því, þar sem rekstraraðilar "pípu" og "umskipunar" framkvæma sömu gerð viðskipti. Hins vegar eru stundum vandamál með undirstöðu leiðslum og umskiptakerfi, td ef rök innihalda rými, sem xargs sigrar.

Að auki framkvæmir xargs tilgreint skipun endurtekið, ef nauðsyn krefur, til að vinna úr öllum þeim rökum sem henni eru gefin. Reyndar er hægt að tilgreina hversu mörg rök ætti að lesa af staðalinntaksstrauminn í hvert skipti sem xargin framkvæmir tilgreint skipun.

Almennt ætti xargs stjórnin að nota ef framleiðsla einum skipun er notuð sem hluti af valkostunum eða rökum annars skipunar sem gögnin eru straumuð (með pípufyrirtækinu "|"). Venjulegur pípur er nægjanlegur ef gögnin eru ætluð til að vera (venjulegur) inntak annars stjórnunar.

Til dæmis, ef þú notar ls skipunina til að búa til lista yfir skráarnöfn og möppur og síðan pípa þessa lista inn í xargs stjórnin sem framkvæmir echo , getur þú tilgreint hversu mörg skráarnöfn eða skráarnöfn eru unnin með echo á hverri endurtekningu sem hér segir :

ls | xargs -n 5 echo

Í þessu tilviki færðu echo fimm skrár eða möppuheiti í einu. Þar echo bætir nýju stafi í lok, eru fimm nöfn skrifaðar á hverri línu.

Ef þú framkvæmir skipun sem skilar stórum og ófyrirsjáanlegum fjölda atriða (td skráarnöfn) sem eru send á annan stjórn til frekari vinnslu er góð hugmynd að stjórna hámarksfjölda röksagna sem annar stjórn fær til að forðast ofhleðslu og hrun.

Eftirfarandi skipanalína skiptir straumum skrárna sem eru framleiddar með því að finna í hópunum 200 áður en þau eru send á cp skipunina, sem afritar þau á afritaskrá .

finndu ./-tegund f-nafn "* .txt" -print | xargs -200 - i cp -f {} ./backup

"./" þátturinn í leitarskipuninni tilgreinir núverandi skrá til að leita. The "-type f" rök takmarkar leitina við skrár, og "-name" * .txt "flipann útskýrir frekar allt sem ekki er með" .txt "eftirnafn. The -i flaggið í xargs táknar að { } tákn táknar hvert heiti skráar gufunnar.

Eftirfarandi skipun finnur skrár sem heitir kjarninn í eða undir möppunni / tmp og eyðir þeim.

finna / tmp-name kjarna-tegund f -print | xargs / bin / rm -f

Athugaðu að þetta mun virka rangt ef það eru einhverjar skrár sem innihalda nýjar línur, einn eða tvöfaldur vitna eða bil. Eftirfarandi útgáfa vinnur með skráarnafnunum þannig að skrá eða möppanöfn sem innihalda eitt eða tveggja tilvitnanir, rými eða nýjar línur eru meðhöndlaðar með réttu hætti.

finna / tmp-name kjarna-tegund f -print0 | xargs -0 / bin / rm -f

Í staðinn fyrir valið getur þú líka notað -I flipann sem tilgreinir strenginn sem það er skipt út fyrir inntakslínuna í stjórnargögnum eins og í þessu dæmi:

ls dir1 | xargs -I {} -t mv dir1 / {} dir / {} / code>

Skiptastrengurinn er skilgreindur sem "{}". Þetta þýðir að allir atburðir af "{}" í stjórnargögnum er skipt út fyrir inntaksstyrkinn sem er sendur til args í gegnum pípuna. Þetta gerir þér kleift að setja inntakseiningarnar á ákveðnum stöðum í rökum þess að stjórnin sé endurtekin (endurtekið).