Conto Nggunakna Command "xargs"

Gambaran lan Pambuka

Perintah xargs biasane digunakake ing baris printah ing endi output siji perintah dialihake minangka argumen input menyang perintah liyane.

Ing sawetara kasus, ora ana perintah khusus kayata xargs sing dibutuhake kanggo ngrampungake, amarga operator "pipa" lan "redireksi" nglakoni transaksi jinis sing padha. Nanging, kadhangkala ana masalah karo mekanisme pipa lan redirection dhasar, contone, yen argumen ngemot spasi, sing ngalahake xargs.

Kajaba iku, xargs nglakokna perintah sing ditindakake kaping pirang-pirang, yen perlu, kanggo ngolah kabeh bantahan sing diwenehake. Ing kasunyatan, sampeyan bisa nemtokake jumlah argumen sing kudu dibaca ing stream input standar saben wektu xargs nglakokake perintah kasebut.

Umumé, printah xargs kudu dipigunakaké yèn output saka siji perintah bakal dipigunakaké minangka bagéyan saka opsi utawa argumèn dhèrèt kapindho sing data ditrapaké (nggunakake operator pipa "|"). Pipis reguler cukup yen data dimaksudaké minangka input (standar) saka perintah kaping pindho.

Contone, yen sampeyan nggunakake perintah ls kanggo ngowahi dhaptar jeneng berkas lan dhaptar direktori, banjur pipis dhaptar iki menyang dhawuhe xargs executing echo , sampeyan bisa nemtokake manawa jeneng berkas utawa jeneng direktori diolah kanthi echo ing saben iterasi kaya kasebut :

ls | xargs -n 5 echo

Ing kasus iki, echo nampi limang file utawa jeneng direktori sekaligus. Wiwit echo nambah karakter garis anyar ing pungkasan, limang jeneng ditulis ing saben baris.

Yen sampeyan nglakokake perintah sing ngasilake item nomer gedhe lan ora bisa ditebak (umpamane jeneng file) sing dikirimake menyang printah liyane kanggo pangolahan luwih apik, iku becik kanggo ngontrol jumlah maksimal argumen sing bakal diwenehake supaya ora nglebur lan nabrak.

Baris baris ing ngisor iki nglebokaké stream jeneng berkas sing diprodhuksi kanthi nggoleki int kelompok 200 sadurunge dituliti menyang perintah cp , kang nyalin menyang direktori serep .

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

Unsur "./" ing printah dhaptar nemtokake direktori saiki kanggo digoleki. "Argument" -type f nyegah telusuran menyang file, lan "-name" *. Txt "tegese nyaring luwih metu apa wae sing ora duwe ekstensi" .txt ". Bendera -i ing xargs menehi sinyal yen { } notasi nglambangake saben file jeneng uap.

Perintah ing ngisor iki nemokake file sing dijenengi inti ing utawa ngisor direktori / tmp lan mbusak.

nemokake / tmp -name inti -type f -print | xargs / bin / rm -f

Elinga yen iki bakal bisa digunakake kanthi ora sengaja yen ana filename ngemot garis anyar, kuotasi siji utawa kaping pindho, utawa spasi. Versi ing ngisor iki ngolah jeneng file kaya mangkene sing jeneng file utawa direktori sing ngemot siji utawa kaping pindho, spasi utawa baris anyar sing ditangani kanthi bener.

nemokake / tmp -name inti -type f -print0 | xargs -0 / bin / rm -f

Tinimbang opsi -i sampeyan uga bisa nggunakake flag -I sing nemtokake senar sing diganti dening baris input ing argumen perintah kaya ing conto iki:

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

Struktur gantian ditemtokake minangka "{}". Iki tegese, apa wae "{}" ing argumen dhawuhe diganti dening elemen input sing diterusake menyang args liwat operasi pipa. Iki ngijini sampeyan kanggo nyelehake elemen input ing posisi tartamtu ing argumen perintah supaya (bola-bali) dieksekusi.