العودة إلى الدورة

31. أمر `locate` مقابل `find`

أساسيات Linux: من الصفر إلى إتقان واجهة سطر الأوامر (CLI Hero)

البحث القائم على قاعدة البيانات

بينما يبحث find في نظام الملفات الحي (live filesystem)، يبحث الأمر locate في قاعدة بيانات مبنية مسبقاً للملفات (/var/lib/mlocate/mlocate.db).

مزايا locate

  • السرعة: إنه سريع بشكل لا يصدق لأنه يبحث في فهرس فقط، وليس في القرص الفعلي.

عيوب locate

  • الدقة: يمكنه فقط العثور على الملفات التي كانت موجودة عند آخر تحديث لقاعدة البيانات. لن تظهر الملفات التي تم إنشاؤها حديثاً على الفور.

الاستخدام الأساسي

bash $ locate sshd_config /etc/ssh/sshd_config /usr/share/man/man5/sshd_config.5.gz

تحديث قاعدة البيانات

للتأكد من أن قاعدة البيانات محدثة، يجب عليك تشغيل أمر التحديث يدوياً (يتطلب امتيازات إدارية):

bash $ sudo updatedb

قاعدة عامة: استخدم locate لعمليات البحث العامة السريعة؛ استخدم find لعمليات البحث الدقيقة والقائمة على المعايير والموجهة نحو التنفيذ.