الأمر find في لينكس قوي جداً وإمكانياته هائلة وتحتاج إلى دروس ودروس لتغيطتها ولكن في هذا الدرس سوف أركز إن شاء الله على خاصية هامّة ورائعة للأمر find وهي تنفيذ أمر على ملف باستخدام find.
الصيغة التي نحتاجها هي
find directory -name -type -exec commad {}
شرح الصيغة أعلاه
directory هي المجلد الذي نريد البحث فيه قد يكون كافة مجلدات القرص الصلب / وقد يكون مجلد واحد مثل /home/user وقد يكون عدة مجلدات /home /tmp
-name اسم الملف أو الملفات مثل my* وتعني كل الملفات التي تبدأ ب my
-type نوع الملف والذي قد يكون ملف عادي وعندها نستخدم f أو مجلد وعندها نستخدم d
-exec تنفيذ الأمر
commad الأمر الذي نريد تنفيذه
{} على الملفات التي نجدها
مثال:
find /home/baheth -name "*.mp3" -type f -exec chmod 644 {} \;
يقوم هذا الأمر بتغير صلاحيات ملفات mp3 في المجلد /home/baheth وكافة المجلدات الفرعية داخل إلى 644
يمكن استبدال mp3 بأي صيغة ملف آخر
“*.mp3″ هذا ما يعرف ب regular expression ولاحظ أنه تم وضعه داخل ” “.
الأمر chmod يمكن تغييره بأمر آخر مثل mv لنقل ملفات mp3 من مجلدات متعددة إلى مجلد واحد.
باختصار إمكانية هائلة وهذا مجرد مثال بسيط من بحر find لمزيد من المعلومات حول الأمر
man find
سلام عليكم
موضوع جميل وقيم و ما يميز الامر find تعدد خصائصه خاصة exec و ok و هذه الاخيرة تمكن الامر الذي تم تنفيده يتفاعل مع المستخدم متال :
find / -name “*.mp3″ -type f -print -ok rm {} \;
حيت تكون الاجابة اما ب y او n يعني القبول او الرفض و هكذا …
بارك الله فيك أخي unary على هذه الإضافة القيمة