Мисал: "xargs" командачылыгынын колдонот

Description жана киргизүү

Xargs буйрук адатта бир буйругу көлөмү дагы бир буйругу менен киргизүү аргумент катары өтүп жаткан буйрук сабында колдонулат.

Көп учурда "чоор" жана "даректи" байланыш операторлору да түрү бүтүмдү аткарууга-жылдан бери мындай xargs эч кандай атайын буйрук, ал ишке ашыруу үчүн зарыл. Бирок, xargs алды деп кээде далилдер жайлар болсо, мисалы, негизги түтүктөрүндө жана кайра даректөө механизми менен маселелер бар.

Андан тышкары, xargs, эгер зарыл болсо, ал үчүн берилген бардык далилдерди иштеп чыгуу үчүн белгилүү команда, бир нече жолу ишке ашырат. Чынында эле, сен xargs аталган буйрукту аткарат сайын стандартты киргизүү Тур окуп турган канча далилдер керек көрсөтүүгө болот.

Жалпысынан алганда, xargs буйрук бир буйругу менен чыгыш маалыматтар ( "|" түтүк оператору аркылуу) агылып турган экинчи буйрук заемдор, же далилдерди бөлүгү катары колдонула турган болсо, анда колдонулушу керек. маалымат экинчи буйрук (стандарт) киргизүү үчүн арналган, анда жөнөкөй куурлары жетиштүү болот.

Мисалы, сиз колдонгон болсо, Ls билэ аталыштары жана көрсөткүчтөрдүн тизмесин түзүү үчүн буйрук, анан чоор xargs бул тизме аткаруу команда сезесиз , сен ар бир кадамынын боюнча калбоону тарабынан каралат канча билэ аттары же каталог аттары көрсөтүүгө болот төмөнкүдөй :

дар | xargs -n 5 сезим

Бул учурда, сезим бир эле убакта беш папке же дарек аттарын алат. Бери Эхо аягында жаңы-сызык мүнөзгө кошумчалайт, беш ысымдар ар бир сабына жазылат.

экинчи команда жык толушун жана чырыны качуу үчүн кабыл алса, ошол далилдерди басымдуу көпчүлүгүн көзөмөлдөө үчүн чоң жана күтүүсүз сан-ден (мисалы, билэ аттары) андан ары дагы бир буйругу менен бул жакшы идея иштетүү боюнча өтүп жаткан кайра буйругун орундатууга болот.

Төмөнкү буйрук сап чыгарган билэ аттары агымына бөлүмдөрү таба 200 топтору Int өтүп чейин КП камдык каталогун, алардын көчүрмөсү буйругу.

./ белгиси е аталышы "* .txt" -print таба | xargs -l200 -i КП -f {} ./backup

табылга буйругу менен "./" элементи издөө учурдагы каталогду аныктайт. "Белгиси бар е" аргумент материалдар менен издөө жана .txt "узартуу" аталышы "* .txt" бир эмес, желек андан ары эч нерсе алып чыпкалайт "чектеп турат. Xargs сигналдардын -i желегин { } ноталык буу ар билэ атын билдирет.

төмөнкү буйрук каталог / TMP же төмөнкү негизги аталган документ таап, аларды жок кылат.

таба / TMP аталышы негизги белгиси е -print | xargs / бин / погондук -f

Бул Newlines, жалгыз же кош тырмакчага, же боштуктарды камтыган кандайдыр бир аты бар, эгер туура эмес иш болот деп белгилешет. төмөнкү версия берүүгө же бир же эки Гезит, боштуктар же Newlines камтыган каталог аттары туура катышкан жаткан ушундай жол менен тутмайды иштетет.

таба / TMP аталышы негизги белгиси е -print0 | xargs -0 / бин / погондук -f

Анын ордуна -i тандоо силер да ушул мисал сыяктуу буйрук далилдерди киргизүү сызык менен алмаштырылат деп сапты аныктайт -I желегин пайдаланууга болот:

дар dir1 | xargs -I {} -t MV dir1 / {} реж / {} / коду>

алмаштыруу сап "{}" катары аныкталат. Бул, кандайдыр бир окуя "{}" буйрук далил жөнөтүлөт киргизүү элемент менен алмаштырылган args түтүк аркылуу. Бул (бир нече жолу) өлүм жазасына тартууга буйрук далил белгилүү кызматтарда киргизүү элементтерин жайгаштырууга мүмкүндүк берет.