Мисолҳои истифода аз фармонҳои "xargs"

Шарҳ ва Муқаддима

Фармони xargs одатан дар сатри фармон, ки баромади як фармонро ҳамчун далели ибтидоӣ ба дигар фармон дода мешавад, истифода бурда мешавад.

Дар бисёр ҳолатҳо, барои иҷрои вазифаҳои махсус, ба монанди xargs лозим нест, зеро операторони "қубурҳо" ва "бозсозӣ" оператори якхела амал мекунанд. Бо вуҷуди ин, баъзан механизми асосӣ ва механизми тағирёбанда вуҷуд дорад, масалан, агар argumentҳо мавҷуданд, ки xargs ба даст меояд.

Илова бар ин, xargs, агар лозим бошад, ҳамаи фармонҳои додашударо такроран иҷро мекунад. Дар ҳақиқат, шумо метавонед нишон диҳед, ки чӣ қадар далелҳо бояд аз ҳарвақтаи стандартие, ки дар он xargs фармон медиҳад, иҷро карда шавад.

Умуман, фармони xargs бояд истифода шавад, агар маҳсулоте, ки як фармон дода мешавад, ҳамчун қисми интихоб ё далелҳои фармони дуюм истифода шавад, ки маълумотҳое, ки дар он маълумот истифода шудааст (бо истифодабарандаи қубур | | | |). Таҳвили мунтазами он, агар маълумот барои ворид шудан (стандарти) комили фармонҳои дуюм бошад.

Масалан, агар шумо фармони ls-ро барои эҷоди рӯйхати файлҳо ва феҳристҳо истифода баред, ва он гоҳ ин рӯйхатро ба қоидаҳои xargs иҷро кунед, шумо метавонед номҳои номҳои феҳрист ё феҳристро бо ҳар як такрорӣ ба кор баред :

Бештар xargs -n 5 echo

Дар ин ҳолат, echo дар як вақт панҷ файл ё феҳристи номида мешавад. Аз оне ки echo дар охири сатри нав илова мекунад, панҷ нома дар ҳар сатр навишта мешаванд.

Агар шумо фармонеро, ки ададҳои калон ва пешгӯишавандаро (масалан, номҳои файл) бармегардонад, ки ба фармонҳои дигар барои коркарди минбаъда дода мешавад, фикри хуби идоракунии рақами ниҳоии далелҳо мебошад, ки фармони дуюм барои пешгирӣ кардани изофаборӣ ва вайроншавӣ мебошад.

Хати зерини фармонҳо ба сурудҳои номҳои файлҳо, ки ба воситаи гурӯҳҳои 200-ум пеш аз ворид шудани фармон ба Cp , ки онҳоро ба феҳристи захираҳо нусхабардорӣ мекунанд, тақсим мекунад .

".txt" -type xargs -l200 -i cp -f {} ./backup

"./" унсур дар фармон ёфтани феҳристи ҷорӣ барои ҷустуҷӯ. Параграфи "f" - ин функсияро ба файлҳо маҳдуд мекунад ва аломати "-type" * .txt "парчамро аз чизи дигаре, ки" .txt "нест, филтр мекунад. } нишон дода мешавад, ки ҳар як номи файл аз воҳиди.

Фармони зерин файлҳоро, ки дар феҳристи / tmp дар феҳрист номида мешавад ва онҳоро ҳазф мекунад.

/ tmp-фармоиш-fotype-fint-ро дарёфт кунед xargs / bin / rm -f

Аҳамият диҳед, ки ин кор нодуруст кор хоҳад кард, агар ягон файлҳое, ки дорои ададҳои нав, нохунакҳои яктарафа ва ё дучоракардаанд, кор кунанд. Нусхаи зерин файлҳои парвандаҳоро ба монанди файлҳои файл ё феҳрист, ки дорои нохунакҳои як ё дутарафа, ҷойҳо ва навистаҳои дуруст мебошанд, меандешанд.

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

Ба ҷои он ки шумо интихоб кунед, шумо метавонед ишора кунед, ки параметрро, ки дар сатри воридшавӣ дар фармонҳои фармон ҷойгир карда шудааст, истифода баред.

Бештар xargs -I {} -t mv dir1 / {} dir / {} / code>

Хатои ивазшавӣ ҳамчун "{}" муайян карда шудааст. Ин маънои онро дорад, ки ҳама гуна парвандаҳои "{}" дар argument-фармонҳо бо унсури воридшаванда, ки тавассути амалиётҳои қубурҳо ба функсияҳо иртибот доранд , иваз карда мешаванд. Ин ба шумо имконияти ворид кардани унсурҳои воридшударо дар ҷойҳои алоҳида дар баёнияҳои фармоишӣ (такрор) иҷро мекунад.