Egzanp Itilizasyon lòd "xargs" la

Deskripsyon ak entwodiksyon

Se lòd la xargs anjeneral itilize nan yon liy lòd kote se pwodiksyon an nan yon sèl lòd pase sou kòm agiman opinyon nan yon lòt lòd.

Nan anpil ka, pa gen okenn lòd espesyal tankou xargs ki nesesè pou akonpli sa, depi "tiyo" ak "redireksyon" operatè yo fè menm kalite tranzaksyon an. Sepandan, pafwa gen pwoblèm ak kanalizasyon debaz la ak mekanis redireksyon, tankou, si agiman gen espas, ki xargs genyen batay.

Anplis de sa, xargs ègzekutra lòd la espesifye repete, si sa nesesè, nan pwosesis tout agiman yo bay li. An reyalite, ou ka presize konbyen agiman yo ta dwe li nan kouran an opinyon estanda chak fwa xargs yo egzekite lòd la espesifye.

Anjeneral, lòd xargs yo ta dwe itilize si pwodiksyon an nan yon sèl lòd yo dwe itilize kòm yon pati nan opsyon yo oswa agiman nan yon lòd dezyèm yo ki done yo difize (lè l sèvi avèk operatè a tiyo "|"). Regilye kanalizasyon se ase si done yo gen entansyon yo dwe (estanda) opinyon nan dezyèm kòmandman an.

Pou egzanp, si ou itilize lòd la ls jenere yon lis non dosye ak repèrtwar, ak Lè sa a, tiyo lis sa a nan lòd an egzekite xargs ego, ou ka presize ki jan anpil non dosye oswa non anyè yo trete pa eko sou chak iterasyon jan sa a :

ls | xargs -n 5 eko

Nan ka sa a, eko resevwa senk dosye oswa anyè non nan yon tan. Depi eko ajoute yon karaktè nouvo liy nan fen a, senk non yo ekri sou chak liy.

Si ou egzekite yon lòd ki retounen yon nimewo gwo ak enprevwayab atik (egzanp non dosye) ki yo pase sou yon lòt lòd pou plis pwosesis li se yon bon lide yo kontwole kantite maksimòm nan agiman ki lòd dezyèm resevwa pou fè pou evite Surcharge ak ekraze.

Liy lòd sa yo partitions kouran an nan non dosye ki te pwodwi pa jwenn int gwoup yo nan 200 anvan pase sou lòd la cp , ki kopye yo nan anyè a backup .

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

"./" eleman nan lòd la jwenn espesifye anyè aktyèl la pou chèche. "Agiman" -type f "la mete restriksyon sou rechèch la nan dosye yo, ak" -name "* .txt" drapo a filtè plis bagay ki pa gen yon ".txt" ekstansyon. -Yon drapo nan xargs siyal ke { } Notasyon reprezante chak non dosye nan vapè a.

Kòmandman ki anba la a jwenn dosye yo rele nwayo nan oswa anba a anyè / tmp la ak efase yo.

jwenn / tmp -name nwayo -type f -print | xargs / bin / rm -f

Remake byen ke sa a ap travay mal si genyen nenpòt fichy ki gen newlines, sèl oswa doub quotes, oswa espas. Vèsyon sa a pratik fichye yo nan yon fason ke non dosye oswa anyè ki gen sèl oswa doub quotes, espas oswa Newlines yo kòrèkteman okipe.

jwenn / tmp -name nwayo -type f -print0 | xargs -0 / bin / rm -f

Olye pou yo opsyon -i a ou ka itilize tou -I drapo a ki espesifye fisèl la ke ke ranplase pa liy lan D 'nan agiman yo lòd tankou nan egzanp sa a:

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

Se kòd ranplasman defini kòm "{}". Sa vle di, nenpòt ki evènman nan "{}" nan agiman yo lòd ranplase pa eleman nan opinyon voye nan args nan operasyon an tiyo. Sa a pèmèt ou mete eleman yo opinyon nan pozisyon espesifik nan agiman yo nan lòd la yo dwe (repete) egzekite.