Bash Scripting

عدّ الملفات بكفاءة في باش

Spread the love

يُعدّ عدّ الملفات بدقة داخل مجلد مهمة أساسية في كتابة السيناريوهات باستخدام Bash. يقدم هذا الدليل طريقتين، مع تسليط الضوء على نقاط القوة والضعف فيهما لمساعدتك على اختيار النهج الأنسب لحالتك.

محتويات

استخدام الأمر find

يُقدم الأمر find حلاً قوياً وموثوقاً لعدّ الملفات، حتى تلك التي تحتوي على مسافات أو أحرف خاصة في أسمائها. وهو النهج المُوصى به لمعظم السيناريوهات.

find . -type f -print0 | wc -l

شرح:

  • find .: يبدأ البحث في المجلد الحالي (.). استبدل . بمسار محدد إذا لزم الأمر (مثل: /path/to/your/directory).
  • -type f: يحد البحث فقط على الملفات العادية، باستثناء المجلدات وأنواع الملفات الأخرى.
  • -print0: يفصل أسماء الملفات بـ حرف فارغ، مما يمنع حدوث مشاكل مع أسماء الملفات التي تحتوي على مسافات أو أحرف خاصة. هذا أمر بالغ الأهمية للموثوقية.
  • | wc -l: يُمرّر قائمة أسماء الملفات المُفصولة بحرف فارغ إلى wc -l، الذي يعدّ الأسطر (وبالتالي، الملفات).

استخدام الأمر ls

يُوفر الأمر ls طريقة أبسط، وإن كانت أقل قوة، لعدّ الملفات. وهي مناسبة فقط للمجلدات التي تحتوي على أسماء ملفات بسيطة، ويجب تجنبها عند التعامل مع الملفات التي تحتوي على مسافات أو أحرف خاصة.

ls -l | grep "^-" | wc -l

شرح:

  • ls -l: يُدرج الملفات بتنسيق طويل، مع عرض معلومات نوع الملف.
  • grep "^-": يُصفّي المخرجات، ويختار فقط الأسطر التي تبدأ بعلامة ناقص (-)، والتي تشير إلى ملف عادي.
  • wc -l: يعدّ الأسطر المتبقية، مُمثلةً لعدد الملفات.

ملاحظة مهمة: هذه الطريقة عرضة للأخطاء إذا بدأت أسماء الملفات بعلامة ناقص أو احتوت على أحرف أخرى تتداخل مع نمط grep. للحصول على نتائج موثوقة، خاصة في بيئات الإنتاج، استخدم الأمر find.

باختصار، بينما يمكن لكلتا الطريقتين عدّ الملفات، فإن قوة الأمر find تجعله الخيار المُفضّل لعدّ الملفات بدقة وموثوقية في سيناريوهات متنوعة.

اترك تعليقاً

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