البحث في Linux: أوامر find وgrep وlocate بشكل عملي
مع زيادة عدد الملفات في Linux، يصبح العثور على ملف أو نص معين تحديا يوميا. هنا تأتي قوة أوامر find وgrep وlocate.
في هذا الدرس ستتعلم البحث عن الملفات بالاسم والنوع، والبحث داخل المحتوى النصي بسرعة.
لماذا تعلم البحث في Linux مهم؟
- يوفر وقتا كبيرا عند العمل على مشاريع وسيرفرات كبيرة
- يساعدك في تحليل المشاكل عبر البحث داخل Logs
- أساس مهم قبل إدارة الصلاحيات والمهام المتقدمة
الأمر find: البحث عن الملفات والمجلدات
صيغة أساسية:
find [path] [options]
أمثلة عملية:
find /home/rachid -name "notes.txt"
find . -type d -name "src"
find . -type f -name "*.log"
-type f: ملفات فقط-type d: مجلدات فقط-name: البحث حسب الاسم (حساس لحالة الأحرف)
البحث غير الحساس لحالة الأحرف مع -iname
find . -iname "readme.md"
استخدم -iname عندما لا يهمك الفرق بين الأحرف الكبيرة والصغيرة.
البحث حسب الحجم أو الوقت باستخدام find
find . -type f -size +10M
find . -type f -mtime -7
-size +10M: ملفات أكبر من 10MB-mtime -7: ملفات تم تعديلها خلال آخر 7 أيام
الأمر grep: البحث داخل محتوى الملفات
هذا الأمر لا يبحث عن اسم الملف، بل يبحث عن نص داخل الملفات.
grep "ERROR" app.log
grep -n "database" config.php
grep -R "TODO" ./project
| الخيار | الفائدة |
|---|---|
-n |
عرض رقم السطر |
-R |
بحث recursive داخل المجلدات |
-i |
تجاهل حالة الأحرف |
الأمر locate: بحث سريع جدا بالاسم
locate nginx.conf
locate سريع لأنه يعتمد على قاعدة بيانات مفهرسة.
إذا كانت النتائج قديمة، قد تحتاج تحديث الفهرس:
sudo updatedb
find عندما تحتاج نتائج دقيقة لحظية، وlocate للبحث السريع العام.
دمج find مع grep للحصول على نتائج أقوى
مثال شائع: ابحث عن كل ملفات .log التي تحتوي كلمة error.
find . -type f -name "*.log" -exec grep -i "error" {} \;
هذا النمط مفيد جدا في تحليل مشاكل الإنتاج.
تمرين عملي: البحث عن الملفات والنصوص في Linux
نفذ الأوامر التالية:
cd /tmp
mkdir -p search-lab/logs
echo "INFO app started" > search-lab/logs/app.log
echo "ERROR database failed" >> search-lab/logs/app.log
find search-lab -type f -name "*.log"
grep -n "ERROR" search-lab/logs/app.log
find search-lab -type f -mtime -1
إذا نجحت في استخراج الملف والسطر الذي يحتوي الخطأ، فقد أتقنت أساس البحث العملي في Linux.
FAQ: أسئلة شائعة حول find وgrep في Linux
ما الفرق بين find وlocate في Linux؟
find يبحث مباشرة داخل نظام الملفات ويعطي نتائج دقيقة لحظية، بينما locate أسرع لكنه يعتمد على قاعدة بيانات قديمة نسبيا.
متى أستخدم grep في Linux؟
استخدم grep عندما تريد البحث عن كلمة أو نمط نصي داخل الملفات مثل السجلات أو ملفات الإعداد.
كيف أبحث عن ملفات معينة داخل مجلد في Linux؟
يمكنك استخدام find مع خيارات مثل -name أو -type أو -size لتحديد النتائج بدقة داخل مسار معين.
الخطوة التالية
في الدرس القادم سنتعلم صلاحيات الملفات في Linux باستخدام chmod وchown.
التالي: الصلاحيات