كيفية حذف جميع الملفات في دليل ما عدا ملف واحد

حذف ملفات Linux

في بعض الأحيان تحتاج إزالة جميع الملفات تقريبًا من الدليل، ولكنك تريد الاحتفاظ بواحد أو بعضها. عندما يكون هناك عدد كبير منهم ، فإن الذهاب واحدًا تلو الآخر مهمة شاقة. إنه ليس الخيار الأفضل ، فهناك طرق لجعل العمل في Linux أسهل بكثير ويمكنك التخلص من كل ما تحتاجه مرة واحدة.

على سبيل المثال ، قد ترغب في إزالة فقط تلك التي تبدأ باسم معين ، أو تلك التي لها امتداد معين ، وما إلى ذلك. كل هذا ممكنفي الواقع ، لقد عرضت بالفعل في مناسبات أخرى دروسًا مماثلة في LxA. هنا يمكنك اتباع البرنامج التعليمي خطوة بخطوة وبطريقة بسيطة لتتمكن من حذف كل تلك الملفات التي تريدها ، باستثناء ما تريد حفظه.

وأفضل شيء هو ذلك لن تحتاج إلى تثبيت أي برنامج ، يمكن إجراؤه بسهولة باستخدام أوامر مثل rm و find. أي البرامج المثبتة مسبقًا على أي توزيعة Linux. وبالطبع ، ستعتمد الطريقة على إيجاد الأنماط واستخدام تلك التطابقات لإزالة ما تريد فقط.

حسنا ، من أجل القضاء على هناك عدة بدائل، ما هم…

إزالة الملفات من دليل مع rm

حسنًا ، من أجل استخدام ملف الأمر rm للقضاء على ما تشعر به ، عليك أن تعرف قبل بعض الطرق لتحديد الأنماط:

  • * (قائمة الأنماط) - يتطابق مع صفر أو أكثر من تكرارات الأنماط المحددة
  • (قائمة الأنماط) - تطابق صفر أو تكرار واحد للأنماط المحددة
  • + (قائمة الأنماط) - يطابق تكرارًا واحدًا أو أكثر للأنماط المحددة
  • @ (قائمة الأنماط) - يطابق أحد الأنماط المحددة
  • ! (قائمة الأنماط) - تتطابق مع أي شيء باستثناء أحد الأنماط المحددة

إلى تمكين extglob من أجل استخدامها ، عليك أولاً تنفيذ الأمر التالي:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

عين! لا أحدده ، لكن من المفترض أن لديك أذونات للقيام بهذه العمليات ، وأنك داخل هذا الدليل عند تنفيذ الأمر rm. كن حذرًا مع هذا ، لأنه إذا قمت بتشغيله في مسار آخر ، فقد ينتهي بك الأمر بحذف الملفات التي لا تريدها. أي قبل تنفيذ هذه الأوامر ، تأكد من إدخال الدليل الذي تريده باستخدام القرص المضغوط.

الآن يمكنك استخدام rm لإزالة ما تريد. على سبيل المثال، حذف جميع الملفات من دليل ما عدا تلك التي تطابق الاسم «Lxa»:

rm -v !("lxa")

يمكنك أيضا تحديد اسمان أو أكثر لا تريد حذفهما. على سبيل المثال ، لتجنب إزالة "lxa" و "desdelinux":

 rm -v !("lxa"|"desdelinux") 

يمكنك حذف جميع الملفات ، ناقص تلك ذات التمديد .mp3. على سبيل المثال:

 rm -v !(*.mp3) 

في النهاية ، يمكنك العودة إلى تعطيل extglob:

 shopt -u extglob 

إزالة الملفات من دليل مع find

بديل آخر لـ rm هو استخدم البحث لإزالة ما تشعر به. يمكنك استخدام أنبوب و xargs مع rm ، أو استخدام الخيار -delete للبحث. وهذا يعني أن بناء الجملة العام سيكون:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

على سبيل المثال ، تخيل أنك تريد حذف جميع الملفات في دليل ما عدا تلك ذات الامتداد .jpg ، يمكنك استخدام أحد هذين الأمرين ، حيث يحصل كلاهما على نفس النتيجة:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

بدلا من ذلك ، إذا أردت أضف بعض الأنماط الإضافية، يمكنك ذلك أيضا. على سبيل المثال ، تخيل أنك لا تريد إزالة ملف .pdf أو .odt من دليل:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

بالطبع ، يمكنك أن تفعل الشيء نفسه مع | و xargs كما في المثال السابق. بالمناسبة ، لقد استخدمنا -لا تنكر ، ولكن يمكنك إزالة ذلك لجعله إيجابيًا ، أي إزالة الأنماط المطابقة وعدم استبعادها.

احذف الملفات من دليل باستخدام متغير GLOBIGNORE

أخيرًا ، هناك بديل آخر للبحث و rm ، ويستخدم متغير بيئة للإشارة إلى الملفات التي تريد إزالتها أو استبعادها. على سبيل المثال ، تخيل أنك تريد حذف جميع الملفات في دليل يسمى التنزيلات ، مع حفظ ملفات .pdf و. mp3 و. mp4. في هذه الحالة ، يمكنك القيام بما يلي:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.