سيأخذك هذا البرنامج التعليمي من خلال الطرق المختلفة للعثور على دليل في نظام Linux. كما قد تعلم بالفعل، في Linux كل شيء هو ملف بما في ذلك الدلائل. وأحد الأشياء الشائعة التي سيقوم بها مستخدم Linux داخل سطر الأوامر هو البحث عن ملف أو دليل.
هناك عدة وسائل مختلفة وأدوات تستخدم للبحث عن الملفات في سطر الأوامر مثل find, locate و which. ومع ذلك، فإن الأداة الأخيرة (which) تُستخدم فقط لتحديد موقع أمر معين.
في نطاق هذا البرنامج التعليمي، سنركز بشكل رئيسي على أداة البحث (find)، التي تبحث عن الملفات في نظام ملفات Linux الحي وتكون أكثر كفاءة وموثوقية مقارنة بـ locate.
عيب locate هو أنه يقرأ قاعدة بيانات واحدة أو أكثر التي تم إنشاؤها بواسطة updatedb، ولا يبحث من خلال نظام ملفات حي. بالإضافة إلى ذلك، فإنه لا يوفر مرونة فيما يتعلق بمكان البحث من (نقطة البداية).
أدناه هو صيغة تشغيل أمر locate:
# locate [option] [search-pattern]
لتوضيح عيب locate، دعنا نفترض أننا نبحث عن دليل يسمى pkg
في دليل العمل الحالي.
ملاحظة: في الأمر أدناه، الخيار --basename
أو -b
يخبر locate بمطابقة اسم الملف (الدليل) فقط (وهو بالضبط pkg) وليس المسار (/path/to/pkg). حيث أن \
هو حرف ترميز جلوب، يعطل الاستبدال الضمني لـ pkg بواسطة *pkg*.
$ locate --basename '\pkg'

كما يمكنك رؤية من نتائج الأمر أعلاه، سيبدأ locate البحث من الدليل الجذري (/)، ولهذا السبب يتم مطابقة الدلائل الأخرى بنفس الاسم.
لذلك، للتعامل مع هذه المشكلة، استخدم find عن طريق اتباع الصيغة المبسطة أدناه:
$ find starting-point options [expression]
فلنلق نظرة على بعض الأمثلة.
للبحث عن نفس الدليل (pkg)
أعلاه، داخل دليل العمل الحالي، قم بتشغيل الأمر التالي، حيث يقرأ العلم -name
التعبير الذي في هذه الحالة هو اسم الدليل.
$ find . -name "pkg"
إذا واجهت أخطاء ” Permission denied “، استخدم أمر sudo مثل هذا:
$ sudo find . -name "pkg"

يمكنك منع البحث عن أنواع ملفات أخرى بخلاف الدلائل عن طريق استخدام العلم -type
لتحديد نوع الملف (في الأمر أدناه d
يعني الدليل) على النحو التالي:
$ sudo find . -type d -name "pkg"
علاوة على ذلك، إذا كنت ترغب في سرد الدليل بتنسيق قائمة طويلة، استخدم التبديل العمل -ls
:
$ sudo find . -type d -name "pkg" -ls

بعد ذلك، سيتيح الخيار -iname
البحث بحالة حساسة للأحرف:
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"

للعثور على معلومات استخدام أكثر إثارة للاهتمام وتقدمًا، اقرأ صفحات الرجل لأوامر find و locate.
$ man find $ man locate
كملاحظة أخيرة، الأمر find هو أكثر موثوقية وكفاءة للبحث عن الملفات (أو الدلائل) في نظام Linux مقارنة بالأمر locate.
بنفس الطريقة كما في السابق، لا تنسى إرسال ملاحظاتك أو أسئلتك من خلال قسم التعليقات أدناه. وأخيرًا، تبقى على اتصال دائم مع Tecmint.