मैं इस पर बहुत उलझन में हूं। कुछ स्पष्टीकरण की आवश्यकता है।यूनिक्स कमांड xargs को समझना
उदाहरण 1:
pgrep string | xargs ps
उदाहरण 2:
"स्ट्रिंग" है जिसके लिए खोज:
find . | xargs grep whatever
उदाहरण 1 से, मैं इसे इकट्ठा इस तरह से है चल रही प्रक्रिया के नाम का हिस्सा और सभी मैचों की प्रक्रिया-आईडी को 'xargs ps' पर वापस लाएं -> जो अभी संलग्न करता है मैचों (जो प्रक्रिया-आईडी खुद को कर रहे हैं) के लिए ps रूप में एक ही उत्पादन प्राप्त करने के लिए:
ps <processid>
कोई व्याख्या कर सकते हैं क्या वास्तव में xargs इस मामले में करता है?
उदाहरण 2 से, मैं इकट्ठा यह इस तरह से है:
यह वर्तमान कार्यशील निर्देशिका से कुछ "स्ट्रिंग" के लिए खोज करने के लिए पुनरावर्ती है। यहां, 'xargs' वास्तव में कैसे काम करता है?
मेरा मानना था कि 'xargs' बार-बार मानक इनपुट से डेटा को xargs को दिए गए 'तर्क' में जोड़ता है (जो आमतौर पर एक यूनिक्स कमांड होता है)।
xargs से() आदमी पेज:
xargs मानक इनपुट से आइटम, कारतूस द्वारा सीमांकित या नई-पंक्तियों (जो डबल या एकल उद्धरण या एक बैकस्लैश के साथ संरक्षित किया जा सकता) पढ़ता है, और कार्यान्वित मानक इनपुट से पढ़ी गई वस्तुओं के बाद प्रारंभिक-तर्कों के साथ किसी भी प्रारंभिक-तर्कों के साथ एक या अधिक बार आदेश (डिफ़ॉल्ट/bin/echo) है। मानक इनपुट पर खाली लाइन अनदेखा कर रहे हैं।
xargs "कमांड subtitution" (कम से कम बैश के साथ) की तरह काम करता का उपयोग कर ARG_MAX के वर्तमान मूल्य प्राप्त कर सकते हैं। यह टोकन तर्क (क्षैतिज) की एक पंक्ति सूची में मल्टीलाइन परिणाम (लंबवत) को बदल देता है। (ध्यान दें कि आप xargs के माध्यम से इसे पार करने से पहले परिणामों को थोड़ा सा फ़िल्टर कर सकते हैं (पूर्व में sed का उपयोग कर)। प्लस xargs «_too बहुत arguments_» त्रुटि को संभालता है जो लिनक्स कर्नेल 2.6.23 से पहले ठीक हो सकता है (देखें [विकिपीडिया] (https://en.wikipedia.org/wiki/Xargs))। यहाँ है [एक और उपयोगी धागा] (http://unix.stackexchange.com/questions/24954/when-is-xargs-needed) – Stphane