Примена Употреба наредбе "каргс"

Опис и увод

Команда каргс се обично користи у командној линији где се излаз једне команде преноси као улазни аргумент у другу команду.

У многим случајевима није потребна никаква посебна команда, као што је каргс, пошто оператери "цеви" и "преусмеравања" обављају исту врсту трансакције. Међутим, понекад постоје проблеми са основним механизмом за прелазак и преусмеравањем, нпр. Ако аргументи садрже просторе, они се превазилазе.

Поред тога, каргс извршава одређену команду више пута, ако је потребно, да обрађује све аргументе датим на њега. У ствари, можете навести колико аргумената треба прочитати од стандардног улазног протока сваки пут када каргс изврши одређену команду.

Генерално, команда каргс треба користити ако се излаз једне команде користи као део опција или аргумената друге команде на коју се подаци преносе (помоћу оператера цеви "|"). Редовна цјевчица је довољна ако су подаци намијењени за (стандардни) улаз друге команде.

На пример, ако користите команду лс да бисте генерисали списак имена и директоријума датотека, а затим цепите ову листу у команду каргс којом се извршава ецхо , можете одредити колико имена датотека или именика се обрађује ехо-ом на свакој итерацији на следећи начин :

лс | каргс -н 5 ецхо

У том случају, ецхо прими пет имена датотека или директорија истовремено. Пошто ехо додаје нову линију на крају, на свакој линији се пише пет имена.

Ако извршавате команду која враћа велике и непредвидљиве ставке броја (нпр. Имена датотека) која се преносе у другу наредбу за даљу обраду, добра је идеја да контролишете максималан број аргумената које друга команда прима да би се избјегло преоптерећење и пуцање.

Следећа командна линија дели партиције имена датотека произведених помоћу проналаска инт група од 200 пре него што их пренесу у наредбу цп , која их копира у резервни директоријум.

нађите ./ -типе ф -наме "* .ткт" -принт | каргс -л200 -и цп -ф {}. / бацкуп

Елемент "./" у наредби за проналазак одређује тренутни директориј за претраживање. Аргумент типа "тип" ограничава претрагу фајлова, а "-наме" * .ткт "ознака даље филтрира све што нема екстензију" .ткт ". Застава у каргс сигнализира да је { } ознака представља свако име датотеке пара.

Следећа команда пронађе датотеке с називом цоре у или испод директоријума / тмп и брише их.

финд / тмп -наме цоре -типе ф -принт | каргс / бин / рм -ф

Имајте на уму да ће ово радити погрешно ако постоје имена датотека која садрже нове линије, појединачне или двоструке цитате или размаке. Следећа верзија обрађује имена датотека тако да имена датотека или директоријума који садрже појединачне или двоструке цитате, размаке или нове линије исправно се обрађују.

финд / тмп -наме цоре -типе ф -принт0 | каргс -0 / бин / рм -ф

Уместо опције можете користити и заставу која специфицира низ који је замијењен улазном линијом у командним аргументима као у овом примеру:

лс дир1 | каргс -И {} -т мв дир1 / {} дир / {} / цоде>

Замјенски низ је дефинисан као "{}". То значи да се било која појава "{}" у командним аргументима замјењује улазним елементом који се просљеђује аргумима кроз рад цијеви. Ово вам омогућава да поставите улазне елементе на одређене позиције у аргументима команде да се (више пута) извршавају.