تخطَّ إلى المحتوى

find

البحث عن ملفّات بشروط find

find يبحث عن ملفّات ومجلّدات داخل شجرة مسار كاملة بناءً على شروط مثل الاسم، النوع، الحجم، أو تاريخ التعديل.

بعكس `locate` الذي يبحث بفهرس جاهز (أسرع لكن قد يكون قديمًا)، find يفحص نظام الملفّات مباشرة لحظة التشغيل فتكون نتائجه دقيقة دائمًا. يمكن ربطه مع `-exec` لتنفيذ أمر على كل نتيجة، مثل حذف كل الملفّات المؤقّتة الأقدم من أسبوع.

الصياغة

find [مسار] [شروط] [إجراء]

📄 مثال

find . -name '*.log'                    # بالاسم
find /var/log -type f -mtime +7          # ملفات أقدم من 7 أيام
find . -size +100M                       # أكبر من 100 ميغابايت
find . -name '*.tmp' -exec rm {} \;      # حذف كل نتيجة

أهم الخيارات

الخيارالوظيفة
-nameمطابقة الاسم (يدعم أنماط مثل *.log)
-type f / dتحديد النوع: f = ملف، d = مجلّد
-mtime -n / +nمعدَّل قبل/بعد n يوم (وقت آخر تعديل)
-sizeالحجم، مثل +100M (أكبر من) أو -1k (أصغر من)
-exec ... {} \;تنفيذ أمر على كل نتيجة مطابقة

💡 نصائح عملية

  • اختبر الشرط بدون `-exec` أولًا لترى ماذا سيُطابَق قبل حذف أو تعديل أي شيء

⚠️ أخطاء شائعة

  • استخدام `-exec rm {} \;` مباشرة دون التحقق من النتائج أولًا — حذف لا يمكن التراجع عنه بسهولة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار LINUX الكامل بالعربي.