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 الكامل بالعربي.