• 1

كيف أحذف كل المجلدات الفارغة على لينوكس؟

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

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

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

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


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

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن