مثال کے طور پر "xargs" کمانڈ کا استعمال

تفصیل اور تعارف

xargs کمانڈ عام طور پر ایک کمان لائن میں استعمال کیا جاتا ہے جہاں ایک کمانڈر آؤٹ پٹ دوسرے کمانڈ میں ان پٹ دلائل کے طور پر منظور کیا جاتا ہے.

بہت سے معاملات میں، کوئی خاص کمانڈ جیسے ایکسراج کو پورا کرنے کے لئے ضروری ہے، کیونکہ "پائپ" اور "ریڈیائرشن" آپریٹرز اسی قسم کے ٹرانزیکشن کو انجام دیتے ہیں. تاہم، بعض اوقات بنیادی پائپنگ اور ریئیرائزیشن میکانزم کے ساتھ مسائل ہیں، مثال کے طور پر، اگر دلائل خالی جگہیں ہیں، تو اس کے اخراجات میں اضافہ ہوتا ہے.

اس کے علاوہ، Xargs مخصوص مقررہ بار بار، اگر ضرورت ہو، کو اس پر دی گئی تمام دلائلوں کو عمل کرنے کے لئے عملدرآمد کرتا ہے. اصل میں، آپ اس بات کی وضاحت کر سکتے ہیں کہ ہر بار Xargs مخصوص کمانڈ پر عمل درآمد معیاری ان پٹ سٹریم کو کتنی دلیلوں کو پڑھنا چاہئے.

عام طور پر، Xargs کمانڈ کو استعمال کیا جانا چاہئے اگر ایک کمانڈ کے آؤٹ پٹ کو ایک دوسرے کمانڈ کے اختیارات یا دلائل کے حصے کے طور پر استعمال کیا جاسکتا ہے جس کے اعداد و شمار کو چلانا (پائپ آپریٹر کا استعمال کرتے ہوئے "|"). اعداد و شمار کا دوسرا کمانڈر (معیاری) ان پٹ بننا ہے تو باقاعدہ پائپنگ کافی ہے.

مثال کے طور پر، اگر آپ فائل نام اور ڈائریکٹریز کی فہرست پیدا کرنے کے لئے ایل ایس کمانڈ کا استعمال کرتے ہیں، اور پھر اس فہرست کو xargs کمان کے عمل کو گونج میں استعمال کرتے ہیں، تو آپ وضاحت کرسکتے ہیں کہ ہر فائل پر گونج کی طرف سے کتنے فائل نام یا ڈائرکٹری کے نام پر عملدرآمد کیا جاتا ہے. :

LS | xargs -n 5 گونج

اس صورت میں، گونج ایک وقت میں پانچ فائل یا ڈائرکٹری نام حاصل کرتا ہے. چونکہ اختتام آخر میں ایک نیا لائن کا کردار شامل کرتا ہے، ہر لائن پر پانچ نام لکھے جاتے ہیں.

اگر آپ کسی کمانڈ پر عملدرآمد کرتے ہیں جس میں بڑے اور غیر متوقع تعداد والے اشیاء (مثال کے طور پر فائل نام) واپس آتے ہیں جو مزید پروسیسنگ کے لئے ایک دوسرے کمانڈ پر منتقل ہوتے ہیں تو یہ دلیلوں کی زیادہ سے زیادہ تعداد پر قابو پانے کا ایک اچھا خیال ہے کہ دوسرا کمانڈ زیادہ سے زیادہ لوڈ کرنے اور حادثات سے بچنے کے لۓ حاصل کرتا ہے.

مندرجہ ذیل کمان لائن کو تلاش کی گئی فائلوں کے ندی کو تقسیم کرتا ہے جس میں 200 سے کم گروپوں کو سی پی کمانڈر منتقل کردیا گیا ہے، جو انہیں بیک اپ ڈائرکٹری میں نقل کرتا ہے.

تلاش کریں ./ -پائپ ایف -نام "* .ٹسٹ" -پرنٹ | xargs -2002-cp -f {} ./ بیک اپ

تلاش کے حکم میں "./" عنصر تلاش کرنے کے لئے موجودہ ڈائرکٹری کی وضاحت کرتا ہے. "قسم کے ایف" کی دلیل فائلوں کو تلاش کو محدود کرتی ہے، اور "-name" * .txt "پرچم کو کچھ بھی اس فلٹر کو فلٹر کرتا ہے جو کسی" ٹی ٹی ٹی "توسیع نہیں ہے. XGGs میں ان پرچم کا اشارہ ہے کہ { } تالیف بھاپ کے ہر فائل کا نام پیش کرتا ہے.

مندرجہ ذیل کمانڈر ڈائرکٹری / ٹی ایم پی میں اندرونی یا اس سے کم فائلوں کو ملتی ہے اور ان کو حذف کرتا ہے.

تلاش / tmp -name بنیادی قسم کے ایف پرنٹ | xargs / bin / rm-f

نوٹ کریں کہ یہ غلطی سے کام کریں گے اگر کوئی فائلیں شامل ہیں جو نئے لائنز، سنگل یا ڈبل ​​حوالہ جات، یا خالی جگہیں ہیں. مندرجہ ذیل ورژن اس طرح سے فائلوں کو عمل کرتی ہے جس میں فائل یا ڈائرکٹری کے نام سنگل یا ڈبل ​​حوالہ جات، جگہوں یا نئی لائنوں سے صحیح طریقے سے سنبھالا جاۓ.

تلاش / tmp -name بنیادی قسم F -print0 | xargs -0 / bin / rm -f

اس اختیار کے بجائے آپ کے اختیار میں آپ بھی اس کا استعمال کرسکتے ہیں جو اس تار میں بیان کرتا ہے جس میں اس مثال کے طور پر کمانڈ دلائل میں ان پٹ لائن کی طرف سے تبدیل کیا جاتا ہے.

LS dir1 | xargs-i {} -tv dir dir / /} dir / {} / code>

متبادل سٹرنگ "{}" کے طور پر بیان کیا جاتا ہے. اس کا مطلب ہے، "{}" کے کسی بھی واقعات کو کمانڈ دلائل میں بدل دیا جاتا ہے ان پٹ عنصر کے ذریعہ پائپ آپریشن کے ذریعہ استقبال کرنے کے لئے. اس سے آپ کو ان پٹ عناصر کو مخصوص عہدوں پر رکھنے کے قابل بناتا ہے جس میں حکم کے دلائل (بار بار) پھانسی ہوئی ہے.