في بعض الأحيان تحتاج إزالة جميع الملفات تقريبًا من الدليل، ولكنك تريد الاحتفاظ بواحد أو بعضها. عندما يكون هناك عدد كبير منهم ، فإن الذهاب واحدًا تلو الآخر مهمة شاقة. إنه ليس الخيار الأفضل ، فهناك طرق لجعل العمل في Linux أسهل بكثير ويمكنك التخلص من كل ما تحتاجه مرة واحدة.
على سبيل المثال ، قد ترغب في إزالة فقط تلك التي تبدأ باسم معين ، أو تلك التي لها امتداد معين ، وما إلى ذلك. كل هذا ممكنفي الواقع ، لقد عرضت بالفعل في مناسبات أخرى دروسًا مماثلة في LxA. هنا يمكنك اتباع البرنامج التعليمي خطوة بخطوة وبطريقة بسيطة لتتمكن من حذف كل تلك الملفات التي تريدها ، باستثناء ما تريد حفظه.
وأفضل شيء هو ذلك لن تحتاج إلى تثبيت أي برنامج ، يمكن إجراؤه بسهولة باستخدام أوامر مثل rm و find. أي البرامج المثبتة مسبقًا على أي توزيعة Linux. وبالطبع ، ستعتمد الطريقة على إيجاد الأنماط واستخدام تلك التطابقات لإزالة ما تريد فقط.
حسنا ، من أجل القضاء على هناك عدة بدائل، ما هم…
إزالة الملفات من دليل مع rm
حسنًا ، من أجل استخدام ملف الأمر rm للقضاء على ما تشعر به ، عليك أن تعرف قبل بعض الطرق لتحديد الأنماط:
- * (قائمة الأنماط) - يتطابق مع صفر أو أكثر من تكرارات الأنماط المحددة
- (قائمة الأنماط) - تطابق صفر أو تكرار واحد للأنماط المحددة
- + (قائمة الأنماط) - يطابق تكرارًا واحدًا أو أكثر للأنماط المحددة
- @ (قائمة الأنماط) - يطابق أحد الأنماط المحددة
- ! (قائمة الأنماط) - تتطابق مع أي شيء باستثناء أحد الأنماط المحددة
إلى تمكين extglob من أجل استخدامها ، عليك أولاً تنفيذ الأمر التالي:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
الآن يمكنك استخدام 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