ذكري المظهر

كيفية العثور على الملفات في لينكس باستخدام سطر الأوامر

الدرس 4 : أوامر مهمة يحترفها كل شخص يقوم باستعمال لينكس [انشاء مجلدات وقراءة الملفات]

الدرس 4 : أوامر مهمة يحترفها كل شخص يقوم باستعمال لينكس [انشاء مجلدات وقراءة الملفات]

جدول المحتويات:

Anonim

يعد الأمر find أحد أقوى الأدوات في ترسانة مسؤولي نظام Linux. يبحث عن الملفات والدلائل في التسلسل الهرمي للدليل بناءً على تعبير مستخدم معين ويمكنه تنفيذ إجراء محدد بواسطة المستخدم على كل ملف متطابق.

يمكنك استخدام الأمر find للبحث عن الملفات والدلائل بناءً على أذوناتها ونوعها وتاريخها وملكيتها وحجمها والمزيد. يمكن استخدامه أيضًا مع أدوات أخرى مثل grep أو sed .

لينكس find قيادة بناء الجملة

بناء الجملة العام للأمر find هو كما يلي:

find

  • تتحكم سمة options في معالجة الارتباطات الرمزية وخيارات تصحيح الأخطاء وطريقة التحسين path… تحدد سمة path… دليل البداية أو الدلائل التي يبحث فيها find عن الملفات. تتكون سمة expression من الخيارات وأنماط البحث و الإجراءات مفصولة المشغلين.

للبحث عن الملفات في الدليل ، يحتاج المستخدم الذي يستدعي الأمر find إلى الحصول على أذونات للقراءة في هذا الدليل.

دعنا نلقي نظرة على المثال التالي:

find -L /var/www -name "*.js"

  • يخبر الخيار -L (خيارات) الأمر find باتباع الروابط الرمزية. /var/www (path…) يحدد الدليل الذي سيتم البحث فيه. (التعبير) -name "*.js يروي البحث عن الملفات التي تنتهي بـ .js (ملفات JavaScript).

البحث عن الملفات حسب الاسم

العثور على الملفات بالاسم هو الاستخدام الأكثر شيوعًا لأمر find . للعثور على ملف باستخدام اسمه ، -name خيار -name اسم الملف الذي تبحث عنه.

على سبيل المثال ، للبحث عن ملف باسم document.pdf في الدليل /home/linuxize يمكنك استخدام الأمر التالي:

find /home/linuxize -type f -name document.pdf

لتشغيل بحث غير -name لحالة الأحرف ، قم بتغيير خيار -iname باستخدام -iname :

find /home/linuxize -type f -iname document.pdf

سيتطابق الأمر أعلاه مع "Document.pdf" و "DOCUMENT.pdf".. الخ.

البحث عن الملفات عن طريق التمديد

البحث عن الملفات بالامتداد هو نفسه البحث عن الملفات بالاسم. على سبيل المثال ، للعثور على جميع الملفات التي تنتهي بـ .log.gz داخل دليل /var/log/nginx يمكنك استخدام:

find /var/log/nginx -type f -name '*.log.gz'

من المهم الإشارة إلى أنه عند استخدام حرف البدل ، يجب عليك إما اقتباس النموذج أو الهروب من العلامة النجمية * بخط مائل عكسي \ حتى لا يتم تفسيره بواسطة الصدفة.

للعثور على جميع الملفات التي لا تتطابق مع regex *.log.gz يمكنك استخدام الخيار *.log.gz . على سبيل المثال ، للعثور على جميع الملفات التي لا تنتهي بـ *.log.gz ستستخدم:

find /var/log/nginx -type f -not -name '*.log.gz'

البحث عن الملفات حسب النوع

قد تحتاج في بعض الأحيان إلى البحث عن أنواع ملفات محددة مثل الملفات العادية أو الدلائل أو الروابط. في Linux ، كل شيء ملف.

للبحث عن الملفات بناءً على نوعها ، استخدم خيار -type وواحد من الواصفات التالية لتحديد نوع الملف:

  • f : ملف منتظم d : دليل l : ارتباط رمزي c : أجهزة شخصية b : أجهزة كتلة p : توجيه الإخراج المسمى (FIFO) s : socket

على سبيل المثال ، للعثور على جميع الأدلة في دليل العمل الحالي ، يمكنك استخدام:

find. -type d

المثال الشائع هو تغيير أذونات ملف موقع الويب بشكل متكرر إلى 644 وأذونات الدليل إلى 755 باستخدام الأمر chmod :

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

البحث عن الملفات حسب الحجم

للعثور على الملفات بناءً على حجم الملف ، مرر المعلمة-size مع معايير الحجم. يمكنك استخدام اللواحق التالية لتحديد حجم الملف:

  • b : كتل 512 بايت (افتراضي) c : بايت w : كلمات ثنائية البايتات k : وحدات الكيلوبايت M : ميغابايت G : غيغابايت

سيجد الأمر التالي جميع ملفات 1024 بايت بالضبط داخل الدليل /tmp :

find /tmp -type f -size 1024c

يتيح لك الأمر find أيضًا البحث عن ملفات أكبر أو أقل من الحجم المحدد.

في المثال التالي ، نبحث عن جميع الملفات التي يقل 1MB عن 1 1MB داخل دليل العمل الحالي. لاحظ الطرح - الرمز قبل قيمة الحجم:

find. -type f -size -1M

find. -type f -size +1M

يمكنك حتى البحث عن الملفات ضمن نطاق الحجم. سيجد الأمر التالي جميع الملفات بين 1 و 1 2MB :

find. -type f -size +1M -size 21M

البحث عن الملفات حسب تاريخ التعديل

يمكن للأمر find أيضًا البحث عن الملفات بناءً على آخر تعديل أو وصول أو تغيير وقت.

كما هو الحال عند البحث حسب الحجم ، استخدم الرمزان الإضافيان والناقصان "أكبر من" أو "أقل من".

دعنا نقول أنه قبل بضعة أيام ، قمت بتعديل أحد ملفات التكوين dovecot ، لكنك نسيت أي واحد. يمكنك بسهولة تصفية جميع الملفات ضمن دليل /etc/dovecot/conf.d الذي ينتهي بـ .conf وتم تعديله في الأيام الخمسة الماضية باستخدام:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

فيما يلي مثال آخر على تصفية الملفات استنادًا إلى تاريخ التعديل باستخدام خيار -daystart التشغيل. يسرد الأمر أدناه جميع الملفات الموجودة في الدليل /home والتي تم تعديلها قبل 30 يومًا أو أكثر:

find /home -mtime +30 -daystart

البحث عن الملفات عن طريق أذونات

يسمح لك الخيار -perm بالبحث عن الملفات بناءً على أذونات الملف.

على سبيل المثال ، للعثور على جميع الملفات التي لديها أذونات بدقة 775 داخل دليل /var/www/html ، يمكنك استخدام:

find /var/www/html -perm 644

يمكنك بادئة الوضع الرقمي مع ناقص - أو شرطة مائلة / .

عند استخدام الشرطة المائلة / البادئة ، يجب أن تحتوي فئة واحدة على الأقل (مستخدم أو مجموعة أو فئات أخرى) على الأقل من وحدات البت المعيّنة لملف مطابق.

النظر في الأمر المثال التالي:

find. -perm /444

سيطابق الأمر أعلاه جميع الملفات مع تعيين أذونات القراءة للمستخدم أو المجموعة أو الآخرين.

إذا تم استخدام ناقص - كبادئة ، فيجب أن يكون الملف متطابقًا مع البتات المحددة على الأقل. سيقوم الأمر التالي بالبحث عن الملفات التي لديها إذن القراءة والكتابة للمالك والمجموعة والتي يمكن قراءتها من قبل المستخدمين الآخرين:

find. -perm -664

البحث عن الملفات حسب المالك

للعثور على الملفات التي يملكها مستخدم أو مجموعة معينة ، استخدم خيارات -group و -group .

على سبيل المثال ، للبحث عن جميع الملفات والدلائل التي يملكها المستخدم linuxize ، يمكنك تشغيل:

find / -user linuxize

هنا مثال في العالم الحقيقي. لنفترض أنك تريد العثور على جميع الملفات التي يملكها المستخدم www-data وتغيير ملكية الملفات المتطابقة من www-data إلى nginx :

find / -user www-data -type f -exec chown nginx {} ;

البحث وحذف الملفات

لحذف جميع الملفات المطابقة ، قم بإلحاق خيار -delete البيانات بنهاية تعبير المطابقة.

تأكد من أنك تستخدم هذا الخيار فقط عندما تكون واثقًا من أن النتيجة تطابق الملفات التي تريد حذفها. من الجيد دائمًا طباعة الملفات المتطابقة قبل استخدام خيار -delete .

على سبيل المثال ، لحذف جميع الملفات التي تنتهي بـ .temp من /var/log/ ستستخدمها:

find /var/log/ -name `*.temp` -delete استخدم خيار -delete بحذر شديد. يتم تقييم سطر الأوامر find كتعبير وإذا قمت بإضافة الخيار -delete أولاً ، -delete الأمر كل شيء أسفل نقاط البداية التي حددتها.

عندما يتعلق الأمر بالأدلة ، يمكن find حذف الدلائل الفارغة فقط مثل rmdir .

استنتاج

لقد أوضحنا لك كيفية استخدام الأمر find مع خيارات ومعايير مختلفة.

يجب أن توفر لك هذه المقالة فهمًا أساسيًا لكيفية تحديد موقع الملفات على أنظمة Linux الخاصة بك. يمكنك أيضًا زيارة صفحة find رجل وقراءة جميع الخيارات القوية الأخرى الموجودة في الأمر find .

العثور على المحطة