
عند العمل مع Linux، يتمثل أحد التحديات المشتركة في العثور على ملفات محددة. في هذا الدليل، سوف نستكشف كيفية استخدام find أمر للبحث عن الملفات بناءً على مرشحات ومعلمات مختلفة. سنقوم أيضًا بتغطية موجزة locate الذي يوفر طريقة بديلة للبحث عن الملفات.
متطلبات
من أجل المضي قدمًا في هذا البرنامج التعليمي، يجب أن يكون لديك جهاز كمبيوتر يعمل بنظام تشغيل يعتمد على Linux. يمكن أن يكون هذا إما آلة محلية أو خادم خاص افتراضي يمكن الوصول إليه من خلال SSH. بينما تم التحقق من العروض التوضيحية في هذا الدليل في Ubuntu 20.04، يجب أن تعمل على أي توزيع Linux.
البحث عن طريق اسم الملف
الطريقة الأكثر استخدامًا للبحث عن الملفات هي باسمها. لتحديد ملف بالاسم باستخدام find الأمر، يمكنك استخدام الجملة التالية:
$ find / -name "query"افتراضيًا، هذا البحث حساس للحالة. إذا كنت ترغب في إجراء بحث غير حساس للحالة، فيمكنك توظيف -iname خيار:
$ find / -iname "query"إذا كنت ترغب في العثور على جميع الملفات التي لا تتطابق مع نمط معين، يمكنك استخدام -not خيار:
$ find / -not -name "query_to_avoid"بدلاً من ذلك، يمكنك استخدام نقطة التعجب (!) لقلب البحث:
$ find / \! -name "query_to_avoid"عند استخدام علامة التعجب، تذكر أن تتجاهلها مع شرطة مائلة للخلف (\) تجنب shell من تفسيرها.
البحث حسب نوع الملف
طريقة أخرى للبحث عن الملفات تعتمد على نوعها باستخدام -typeالبارامتر . فيما يلي بعض واصفات النوع التي يمكنك استخدامها:
f: ملف عاديd: دليلl: ارتباط رمزيc: أجهزة حرفb: أجهزة حظر
على سبيل المثال، إذا كنت تريد العثور على جميع أجهزة الأحرف في نظامك، فقم بتنفيذ الأمر التالي:
$ find /dev -type cالبحث عن ملفات ذات امتداد محدد (على سبيل المثال، .conf), توظيف -name جنبا إلى جنب مع *.extension نمط:
$ find /usr -type f -name "*.conf"يمكنك الجمع بين تعابير بحث متعددة باستخدام -and المشغل (ضمنا عندما لا يكون هناك خيار محدد) أو -or مشغل:
$ find -name query_1 -or -name query_2الترشيح حسب الحجم والوقت
find يقدم الأمر خيارات مختلفة لتصفية الملفات بناءً على حجمها ووقتها.
حجم
لتصفية الملفات حسب الحجم، استخدم -size تليها قيمة الحجم وعقبة تشير إلى الوحدة. تشمل اللواحق ذات الحجم الشائع ما يلي:
c: bytesk: kilobytesM: megabytesG: gigabytesb: 512-byte blocks
على سبيل المثال، لتحديد الملفات التي يبلغ حجمها 50 بايت بالضبط:
$ find /usr -size 50cللعثور على ملفات أصغر من 50 بايت:
$ find /usr -size -50cوقت
لتصفية الملفات بناءً على وقت التعديل، يمكنك توظيف -mtime, -atime, and -ctime بارامترات.
-mtimeعلى أساس وقت تعديل الملف.-atimeعلى أساس وقت الوصول إلى الملف.-ctimeعلى أساس وقت تغيير الملف.
يمكنك تحديد الوقت باستخدام تنسيقات مختلفة:
n: العدد الدقيق لفترات 24 ساعة مضت.+n: منذ أكثر من 24 ساعة.-n: قبل أقل من 24 ساعة.
على سبيل المثال، للعثور على الملفات المعدلة خلال الأيام 7 الماضية:
$ find /usr -mtime -7لتحديد الملفات التي تم الوصول إليها منذ أكثر من 30 يومًا:
$ find /usr -atime +30اكتشاف الملفات التي تغيرت بياناتها الوصفية (مثل الأذونات) خلال الـ 24 ساعة الماضية:
$ find /usr -ctime 0العثور بواسطة المالك والأذونات
find يسمح لك الأمر أيضًا بالبحث عن الملفات بناءً على مالكها والأذونات.
مالك
للعثور على ملفات مملوكة لمستخدم معين، يمكنك استخدام -user يليه اسم المستخدم. على سبيل المثال، للبحث عن الملفات المملوكة للمستخدم “john”:
$ find / -user johnأذونات
يمكنك البحث عن الملفات بناءً على أذوناتهم باستخدام -perm البارامتر. يقبل هذا المعامل نمط رقمي أو تدوين رمزي يمثل الأذونات المطلوبة.
للعثور على ملفات ذات أذونات محددة معبر عنها في الوضع الرقمي، استخدم رقم ثماني مكون من ثلاثة أرقام. على سبيل المثال، للبحث عن الملفات بالقراءة والكتابة وتنفيذ الأذونات للمالك، وقراءة الأذونات للآخرين:
$ find / -perm 744للبحث عن ملفات ذات أذونات محددة معبر عنها في تدوين رمزي، استخدم مزيجًا من u (user), g (group), o (others), r (read), w (write), and x (execute). على سبيل المثال، للبحث عن الملفات مع أذونات القراءة والكتابة للمالك:
$ find / -perm u=rwيمكنك أيضًا الجمع بين أذونات متعددة وتحديد مستويات ملكية مختلفة في التدوين الرمزي. على سبيل المثال، للبحث عن الملفات مع قراءة وتنفيذ الأذونات للمالك، وكتابة إذن للمجموعة، وقراءة الإذن للآخرين:
$ find / -perm u=rx,g=w,o=rخلال استخدام -user و -perm الخيارات، يمكنك البحث بشكل فعال عن الملفات بناءً على مالكها والأذونات.
تنفيذ الأوامر عند العثور على النتائج
find لا يساعدك الأمر على تحديد الملفات فحسب، بل يمكّنك أيضًا من إجراء إجراءات على نتائج البحث. يمكنك تنفيذ أوامر مختلفة على الملفات التي وجدتها find باستخدام مؤشر -exec خيار.
التركيبة الأساسية لتنفيذ الأوامر على find فيما يلي النتائج:
$ find /path/to/search -name "query" -exec command {} \;في هذا البناء:
/path/to/searchهو الدليل حيث تريد البحث عن الملفات."query"هو استعلام أو نمط البحث لمطابقة أسماء الملفات.commandهو الأمر الذي تريد تنفيذه في كل ملف تم العثور عليه.{}يمثل المساعد للملف الموجود.\;يستعمل لإنهاء-execخيار.
على سبيل المثال، حذف جميع الملفات مع .log والإطالة في /var/log الدليل، يمكنك استخدام الأمر التالي:
$ find /var/log -name "*.log" -exec rm {} \;هذا الأمر سينفذ rm أمر على كل ملف عثر عليه find, حذف جميع الملفات مع .log .
يمكنك أيضًا دمج أوامر متعددة أو تمرير حجج إضافية إلى الأمر. فقط تأكد من الهروب بشكل صحيح من أي شخصيات خاصة.
باستخدام مؤشر -exec الخيار مع find الأمر يوفر المرونة في تنفيذ الإجراءات على نتائج البحث، مما يجعله أداة قوية لإدارة الملفات والأتمتة.
استخدام locate أمر
locate يوفر الأمر طريقة أسرع للبحث عن الملفات الموجودة على نظامك من خلال استخدام قاعدة بيانات مبنية مسبقًا تسمى قاعدة بيانات الموقع. يتم تحديث قاعدة البيانات بانتظام، لذلك قد لا تتضمن ملفات تم إنشاؤها أو تعديلها مؤخرًا.
تهيئة قاعدة البيانات:
قبل استخدام locate الأمر، من المهم التأكد من تحديث قاعدة البيانات. نفذ الأمر التالي على النحو التالي root أو مع sudo:
$ sudo updatedbيقوم هذا الأمر بتحديث قاعدة البيانات المستخدمة من قبل locate لفهرسة نظام الملفات.
البحث عن الملفات:
للبحث عن الملفات باستخدام locate, ببساطة حدد الكلمة الرئيسية أو النمط الذي تريد البحث عنه. على سبيل المثال:
$ locate file.txtسيجد هذا الأمر جميع الملفات التي تحتوي على ‘file.txt’ باسمها.
حساسية الحالة:
افتراضيا، locate الأمر غير حساس للقضية. إذا كنت ترغب في إجراء بحث حساس للحالة، فاستخدم -i خيار. على سبيل المثال:
$ locate -i File.txtسيجد هذا الأمر ملفات تحمل اسم ‘File.txt’ أو ‘file.txt’.
تحديث قاعدة البيانات:
قاعدة بيانات الملفات المستخدمة من قبل locate قد لا يكون دائما مستكملا. للتأكد من أن لديك آخر معلومات الملفات، قم بتحديث قاعدة البيانات بشكل دوري باستخدام updatedb أمر.
خلاصة
البحث عن ملفات على لينكس يمكن إنجازه باستخدام find و locate أوامر. find يوفر الأمر مزيدًا من المرونة ويسمح بإجراء عمليات بحث دقيقة بناءً على معايير مختلفة، مثل اسم الملف والنوع والحجم والوقت. من ناحية أخرى, locate الأمر يوفر بحثًا أسرع باستخدام قاعدة بيانات مبنية مسبقًا.
من خلال إتقان هذه الأوامر، يمكنك تحديد موقع الملفات بكفاءة على نظام Linux الخاص بك وتبسيط سير العمل.
