ဥပမာအားဖြင့် "xargs" စစ်ဌာနချုပ်၏အသုံးပြုမည်

ဖော်ပြချက်နှင့်မိတ်ဆက်ခြင်း

အဆိုပါ xargs command ကိုပုံမှန်အားဖြင့်တဦးတည်းအမိန့်ပေး၏ output ကိုအခြား command ကိုမှ input ကိုဆင်ခြေအဖြစ်အပေါ်လွန်သည်အဘယ်မှာရှိပြီး command line အတွက်အသုံးပြုသည်။

သည် "ပိုက်" နှင့် "redirection" အော်ပရေတာတူညီတဲ့အမျိုးအစားငွေပေးငွေယူလုပ်ဆောင်ကတည်းကအများအပြားကိစ္စများတွင်ထိုကဲ့သို့သော xargs အဖြစ်အဘယ်သူမျှမကအထူး command ကို, ထိုပြီးမြောက်ဖို့လိုအပျဖြစ်ပါတယ်။ ငြင်းခုံနေရာများပါဝင်နေလျှင်သို့သော်တစ်ခါတစ်ရံတွင်အခြေခံပိုက်နှင့် redirection ယန္တရားနှင့်အတူပြဿနာများကို xargs အောင်မြင်သောကြောင်း, ဥပမာ, ရှိပါတယ်။

လိုအပ်ခဲ့လျှင်ထို့အပြင် xargs ကပေးသောအပေါငျးတို့သအငြင်းပွားမှုများကို process မှ, ထပ်တလဲလဲသတ်မှတ်ထားသော command ကို ပေး. စီရင်။ တကယ်တော့သင်က xargs အဆိုပါသတ်မှတ်ထားတဲ့ command ကို ပေး. စီရင်တစ်ခုချင်းစီကိုအချိန် stream စံ input ကိုပယ်ကိုဖတ်ရှုရပါမည်မည်မျှအငြင်းပွားမှုများကိုသတ်မှတ်နိုင်ပါတယ်။

တဦးတည်းအမိန့်ပေး၏ output ကိုဒေတာထုတ်လွှင့်ထားတဲ့တစ်စက္ကန့် command ကို၏ရွေးချယ်မှုများသို့မဟုတ်အငြင်းပွားမှုများ၏တစ်စိတ်တစ်ဒေသအဖြစ်အသုံးပြုခံရဖို့ပါလျှင်ယေဘုယျခုနှစ်, xargs command ကိုသုံးသင့်ပါတယ် ( "|" ဟုအဆိုပါပိုက်အော်ပရေတာကို အသုံးပြု. ) ။ ဒေတာဒုတိယ command ကို၏ (စံ) input ကိုဖြစ်ရည်ရွယ်လျှင်ပုံမှန်ပိုက်လုံလောက်သောဖြစ်ပါတယ်။

ဥပမာအားဖြင့်, သင်အသုံးပြုလျှင် ls အဆိုပါ xargs သို့ဤစာရင်းဖိုင်အမည်များနှင့် directory များစာရင်းတစ်ခု generate, ပြီးတော့ပိုက်ဖို့မှာထား၏ကွပ်မျက်ခြင်းငှါငါပညတ် ပဲ့တင်သံ , သင်အောက်ပါအတိုင်းတစ်ခုချင်းစီကြားမှာပေါ်ပဲ့တင်ထပ်နေဖြင့်လုပ်ငန်းများ၌မည်မျှဖိုင်အမည်များသို့မဟုတ် directory အမည်များကိုသတ်မှတ်နိုင်ပါတယ် :

ls | 5 ပဲ့တင်သံ -n xargs

ဤကိစ္စတွင်ခုနှစ်, ပဲ့တင်သံ တစ်ကြိမ်ငါးဖိုင်သို့မဟုတ် directory အမည်များကိုလက်ခံရရှိပါတယ်။ ကတည်းက ပဲ့တင်သံ အဆုံးမှာအသစ်တခု-line ကိုဇာတ်ကောင်ကထပ်ပြောသည်, ငါးအမည်များမှာတစ်ခုချင်းစီကိုလိုင်းပေါ်ရေးထားလျက်ရှိ၏။

သငျသညျနောက်ထပ်အပြောင်းအလဲနဲ့အဘို့အခြား command ကိုမှအပေါ်လွန်ထားတဲ့ကြီးမားတဲ့နှင့်ခန့်မှန်းရခက်အရေအတွက်ကပစ္စည်းများ (ဥပမာဖိုင်အမည်များ) ပြန်လည်ရောက်ရှိတဲ့ command ကို execute လျှင်ဒုတိယ command ကို Overload နှင့် crashing ရှောင်ရှားရန်အားလက်ခံတွေ့ဆုံကြောင်းငြင်းခုံအများဆုံးအရေအတွက်ကထိန်းချုပ်ဖို့ကောင်းတယ်။

အောက်ပါ command line ကိုထုတ်လုပ်ဖိုင်အမည်များစီး partitions ကိုရှာဖွေ သည့်အပေါ်လွန်မတိုင်မီ 200 ၏အုပ်စုများ int cp သော backup လုပ်ထားသည် directory မှမိတ္တူသူတို့ကို command ကို။

./ -type, f -name "* .txt" -print ရှာတွေ့ | xargs -l200 -i cp -f {} ./backup

ယင်းတွေ့ရှိမှုသည် command ကိုရှိ "./" ဒြပ်စင်ရှာဖွေနေများအတွက်လက်ရှိ directory ကိုသတ်မှတ်ပါတယ်။ အဆိုပါ "-type f", အငြင်းအခုံ .txt "တိုးချဲ့မှု" တစ်ဦးရှိသည်မဟုတ်ပါဘူးဘာမှထွက်အလံနောက်ထပ် filter များ "ဖိုင်များရှာဖွေရေးကန့်သတ်ပြီးလျှင်," -name "* .txt ။ သော {xargs အချက်ပြမှုများအတွက် -i အလံ } သင်္ကေတဟာရေနွေးငွေ့၏တစ်ဦးချင်းစီဖိုင် name ကိုကိုယ်စားပြုတယ်။

အောက်ပါ command ကို directory ကို / tmp တွင်သို့မဟုတ်အောက်တွင်ဖော်ပြထားသော core ကိုအမည်ရှိ files တွေကိုတွေ့တို့ကိုဖျက်။

| / tmp -name core ကို -type, f -print ရှာတွေ့ xargs / bin / rm -f

NEWLINE, တစ်ခုတည်းသို့မဟုတ်နှစ်ဆကိုးကား, ဒါမှမဟုတ်နေရာများင်မဆို filename ရှိပါတယ်လျှင်ဤမှားယွင်းစွာအလုပ်လုပ်ပါလိမ့်မယ်သတိပြုပါ။ အောက်ပါ version ကိုတစ်ခုတည်းသို့မဟုတ်နှစ်ဆကိုးကား, နေရာများသို့မဟုတ် NEWLINE ်ဖိုင်သို့မဟုတ် directory အမည်များကိုမှန်ကန်စွာကိုင်တွယ်ဖြစ်ကြောင်းထိုကဲ့သို့သောလမ်းထဲမှာ filename process လုပ်တယ်။

| / tmp -name core ကို -type, f -print0 ရှာတွေ့ xargs -0 / bin / rm -f

အဲဒီအစားသင်တို့သည်လည်းဤဥပမာ၌ရှိသကဲ့သို့အမိန့်အငြင်းပွားမှုများအတွက် input ကိုလိုင်းဖြင့်အစားထိုးသော string ကိုသတ်မှတ်ပါတယ်သော -i အလံသုံးနိုငျအဆိုပါ -i option ကို:

ls dir1 | xargs -i {} -t MV dir1 / {} dir / {} / code>

အဆိုပါအစားထိုး string ကို "{}" အဖြစ်သတ်မှတ်ထားသည်။ ဒါက command ကိုအငြင်းပွားမှုများအတွက် "{}" မဆိုကွိမှပေးပို့သည့် input ကိုဒြပ်စင်များဖြင့်အစားထိုးသည်ကိုဆိုလိုသည် args ပိုက်စစ်ဆင်ရေးမှတဆင့်။ ဤသူသည်သင်တို့ (ထပ်တလဲလဲ) ကွပ်မျက်ခံရခံရဖို့အမိန့်များအငြင်းပွားမှုများအတွက်တိကျသောရာထူးမှာ input ကို element တွေကိုနေရာနိုင်ပါတယ်။