اذهب إلى المحتوى

السؤال

نشر

توجد لدي مجموعة كبيرة من المجلدات الفرعيةوالتي تحوي بدورها مجلدات فرعية أخرى.. وهكذا. بعض هذه المجلدات لا يحوي سوى مجلدات فرعية خاوية.

ما أريده هو أن أحذف المجلدات التي لا توجد فيها ولا في أي واحد من ملفاتها الفرعية ملفات.

أستخدم توزيعة أوبنتو.

Recommended Posts

  • 2
نشر

ما تريده يتطلّب البحث عن المجلّدات الفارغة، ولا أفضل من find لهذه المهمّة:

find -depth -type d -empty -exec rmdir {} \;


يبحث الأمر عن المجلّدات (type d-) الفارغة (empty-) ثمّ يحذفها (أمر rmdir يُستخدم لحذف المجلّدات الخاويّة فقط).

هناك خيّار مهمّ آخر في الأمر أعلاه وهو خيّار depth-: يطلب هذا الخيّار معالجة محتوى المجلّد أوّلًا قبل التّعامل مع المجلّد نفسه؛ يعني هذا أنّه إذا كان لديك مجلّد Folder1 به مجلّدان فرعيّان Folder1A وFolder1B فإنّ أمر find سيُعالج محتوى Folder1A وFolder1B أوّلًا، أيّ ف حالتنا يحذف المجلّد إذا كان خاويًّا.

لو لم نستخدم depth- لظهرت رسائل خطأ نظرًا أنّ rmdir لا يحذف سوى المجلّدات الفارغة (لا يوجد بها ملفّ أو مجلّدات فرعيّة).

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...