الثنائي الرائع find و xargs
كتب بواسطة مسلم عادل بتاريخ 2008/09/08
الأمر find (كما يدل إسمه) يستخدم للبحث عن الملفات والمجلدات. بينما الأمر xargs يعمل على تكرار أمر ما للمعطيات التي تمرر إليه.
لنفرض أنك تريد حذف كل الملفات التي تنتهي بالعلامة “~” من مجلد ما والمجلدات الفرعية التي بداخله. سيكون من الصعب أن تدخل الى كل مجلد يدويا لحذف هذا النوع من الملفات، ولكن باستخدام الأمر find سيكون بإمكانك إيجاد هذه الملفات بسهولة وإذا استخدامت الأمر xargs معه ستتمكن من حذفها بسهولة أيضا.
تأمل المثال التالي:
arabian@laptop:~$ find /home/arabian -name "*~" | xargs rmالأمر find سيقوم بإيجاد كل ملف ينتهي بـ ~ والأمر xargs سيقوم بتمرير النتيجة الى الأمر rm
في بعض أنواع الصدفات (shells) لن تعمل الصيغة السابقة لأن العلامة * محجوزة ولكن يمكن “الهروب” لو نفذ الأمر بالطريقة التالية:
arabian@laptop:~$ find /home/arabian -name \*~ | xargs rmوإذا كنت تريد حذف الملفات دون أن تسأل أضف الخيار “-f” الى الأمر rm
arabian@laptop:~$ find /home/arabian -name \*~ | xargs rm -f
September 11th, 2008 on %H:%M
شرح رائع ومفيد جداً
بارك الله بك