Pananglitan Mga paggamit sa "xargs" Command

Deskripsyon ug Pasiuna

Ang command xargs sagad gigamit sa usa ka command line diin ang output sa usa ka command ipasa ingon nga input arguments sa laing command.

Sa daghang mga kaso, walay espesyal nga sugo sama sa xargs ang gikinahanglan aron mahimo kana, sanglit ang mga "pipe" ug "redirection" nga mga operator naghimo sa sama nga matang nga transaksyon. Hinuon, usahay adunay mga isyu sa basehan nga mekanismo sa pag-usab ug pag-usab, pananglitan, kung ang mga argumento dunay mga espasyo, nga madaugon ang mga xarg.

Dugang pa, ang mga xargs nagpatuman sa gitakda nga sugo nga balik-balik, kon gikinahanglan, aron iproseso ang tanang mga argumento nga gihatag niini. Sa pagkatinuod, mahibal-an mo kon pila ka mga argumento ang kinahanglan basahon sa standard input stream sa matag higayon nga ang mga xargs magpatuman sa espesipikong komand.

Sa kinatibuk-an, ang command sa xargs kinahanglan gamiton kung ang output sa usa ka sugo gamiton isip kabahin sa mga kapilian o mga argumento sa usa ka ikaduhang sugo nga diin ang datos gipaagi (gamit ang pipe operator "|"). Ang regular nga piping igo kon ang datos gituyo nga mahimong (standard) input sa ikaduha nga sugo.

Pananglitan, kung imong gamiton ang ls command aron makamugna og usa ka lista sa mga pangalan ug direktiba sa mga file, ug unya ipa-lista kini nga lista sa xargs nga ipatuman ang echo , mahimo nimo mahibal-an kung pila ang mga ngalan sa file o direktoryo nga giproseso pinaagi sa echo sa matag pag-ulit ingon sa mosunod :

ls | xargs -n 5 echo

Sa niini nga kaso, echo makadawat sa lima ka mga file o mga pangalan sa direktoryo sa usa ka higayon. Tungod kay ang echo nagdugang sa usa ka bag-ong linya nga kinaiya sa katapusan, lima ka mga ngalan gisulat sa matag linya.

Kon ipatuman nimo ang usa ka sugo nga ibalik ang usa ka dako ug dili matag-an nga mga numero sa mga butang (eg mga ngalan sa file) nga gipasa ngadto sa laing sugo alang sa dugang nga pagproseso kini usa ka maayong ideya nga kontrolon ang maximum nga gidaghanon sa mga argumento nga madawat sa ikaduha nga sugo aron dili mahasol ug mahagsa.

Ang mosunod nga command line nagbahin sa sapa sa mga ngalan sa file nga gihimo pinaagi sa pagpangita sa mga grupo sa 200 sa wala pa ipasa ngadto sa cp nga komand, nga nag-kopya niini ngadto sa backup nga direktoryo.

pangita ./ -type f -name "* .txt" -print | xargs -l200 -i cp -f {} ./backup

Ang "./" nga elemento sa find command nagtino sa kasamtangan nga direktoryo alang sa pagpangita. Ang argumento nga "-type f" nagpugong sa pagpangita sa mga file, ug ang "-name" *. Txt "flag nagpadayon sa pagsala sa bisan unsa nga wala'y" .txt "nga extension. Ang bandila sa -i sa xargs nagpakita nga ang { ang notasyon nagrepresentar sa matag ngalan sa file sa alisngaw.

Ang mosunod nga sugo makakaplag sa mga file nga ginganlan sa core o ubos sa direktoryo / tmp ug sa pagpawala niini.

pangita / tmp-name core -type f -print | xargs / bin / rm -f

Timan-i nga kini mahimo nga sayup kung adunay mga filename nga adunay bag-ong mga linya, single o double quotes, o mga espasyo. Ang mosunod nga bersyon nagproseso sa mga filename sa usa ka paagi nga ang file o direktoryo nga mga ngalan nga adunay mga single o double quotes, mga spaces o mga bag-ong linya ang husto nga gidumala.

pangita / tmp-name core -type f -print0 | xargs -0 / bin / rm -f

Imbis sa -i nga kapilian mahimo usab nimo gamiton ang -I flag nga nagtino sa hugpong nga gipulihan sa linya sa input sa mga argumento sa sugo sama niini nga pananglitan:

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

Ang gipulihan nga pisi gihubit nga "{}". Kini nagpasabot nga, ang bisan unsang panghitabo nga "{}" diha sa mga argumento sa komandido gipulihan sa input element nga gipasa ngadto sa args pinaagi sa operasyon sa pipe. Kini makatabang kanimo sa pagbutang sa mga elemento sa input sa piho nga mga posisyon diha sa mga argumento sa sugo nga mahimong balikbalik.