يبحث Linux في جميع الملفات الموجودة في الدليل. كيفية العثور على ملف في لينكس. أمثلة على استخدام أمر البحث باستخدام عوامل التشغيل


تم التحديث: 11/02/2019 تاريخ النشر: 25/07/2016

أمر البحث الأكثر تنوعًا وعمليًا في Linux هو يجد.هذه المقالة عبارة عن ورقة غش تحتوي على أمثلة لاستخدامها.

بناء الجملة العام

يجد<где искать> <опции>

<где искать> — المسار إلى الدليل الجذر حيث يبدأ البحث. على سبيل المثال، ابحث عن /home/user - ابحث في الدليل المناسب. بالنسبة للدليل الحالي، تحتاج إلى استخدام نقطة ".".

<опции> — مجموعة من القواعد التي يتم من خلالها إجراء البحث.

* بشكل افتراضي، يكون البحث متكررًا. للبحث في دليل محدد، يمكنك استخدام الخيار أقصى عمق.

وصف الخيارات

خيار وصف
-اسم البحث عن طريق الإسم.
-أنا اسم بحث حساس لحالة الأحرف بالاسم.
-يكتب

نوع كائن البحث. الخيارات الممكنة:

  • و - ملف؛
  • د - الدليل؛
  • ل - الرابط؛
  • ف - الأنابيب؛
  • ق - المقبس.
-مقاس حجم الكائن. يتم تحديده في كتل بحجم 512 بايت أو ببساطة بالبايت (بالحرف "c").
-mtime وقت تعديل الملف. مبين في أيام.
-مممين تغيير الوقت بالدقائق.
-وقت وقت آخر وصول إلى الكائن بالأيام.
-أمين وقت آخر مكالمة بالدقائق.
-ctime آخر تغيير للمالك أو حقوق الكائن خلال أيام.
-كمين تغيير المالك الأخير أو الإذن خلال دقائق.
-مستخدم البحث حسب المالك.
-مجموعة حسب المجموعة.
-موج الشعر بإستمرار مع حقوق وصول معينة.
-عمق يجب ألا يبدأ البحث من الجذر، بل من أعمق دليل متداخل.
-أقصى عمق الحد الأقصى لعمق البحث في الدلائل. -أقصى عمق 0 - البحث فقط في الدليل الحالي. بشكل افتراضي، يكون البحث متكررًا.
-تقليم يستبعد الدلائل المدرجة.
-تتعدد لا تنتقل إلى أنظمة الملفات الأخرى.
-التعبير العادي بالاسم مع التعبير العادي.
-regextype<тип> نوع التعبير العادي
يظهر محتويات الروابط الرمزية (الارتباطات الرمزية).
-فارغ البحث عن الدلائل الفارغة.
-يمسح احذف ما تم العثور عليه.
-ل.س الإخراج كـ ls -dgils
-مطبعة أظهر ما تم العثور عليه.
-طباعة0 المسار إلى الأشياء التي تم العثور عليها.
-تنفيذي<команда> {} \; قم بتنفيذ الأمر على الشخص الذي تم العثور عليه.
-نعم قم بإصدار مطالبة قبل تنفيذ -exec.

يمكن الحصول على المجموعة الكاملة من الخيارات الحالية باستخدام الأمر رجل يجد.

أمثلة على استخدام البحث

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

البحث عن / -اسم "file.txt"

* في هذا المثال سيتم البحث في ملف بالاسم ملف.txtفي جميع أنحاء نظام الملفات بأكمله بدءًا من الجذر / .

البحث عن ملف بجزء من اسمه:

البحث عن / -اسم "*.tmp"

* سيبحث هذا الأمر عن كافة المجلدات أو الملفات الموجودة في الدليل الجذر /, وتنتهي مع .tmp

ابحث عن كافة الملفات أو المجلدات التي تبدأ بـ جلسة_وتنتهي ب قرص مضغوط

يجد . -الاسم "sess_*" -a -الاسم "*cd"

* -أ:منطقي و، -س:منطقي أو.

البحث حسب التاريخ

1. ابحث عن الملفات التي تم تغييرها منذ عدد معين من الأيام:

يجد . -النوع f -mtime +60

* سيبحث هذا الأمر عن الملفات التي تم تغييرها منذ أكثر من 60 يومًا.

2. البحث عن الملفات باستخدام أحدث. هذا الخيار متاح من الإصدار 4.3.3 (يمكنك مشاهدته باستخدام الأمر العثور على --version).

أ) تاريخ التغيير:

يجد . -النوع f -newermt "2019-11-02 00:00"

* سيظهر جميع الملفات التي تغيرت منذ 11/02/2019 الساعة 00:00.

يجد . -نوع f-newermt2019-10-31 ! -جديد 2019-11-02

* سيتم العثور على كافة الملفات التي تم تغييرها بين 31/10/2019 و 01/11/2019 (ضمناً).

ب) تاريخ تقديم الطلب:

يجد . -نوع f-newerat 2019-10-08

* جميع الملفات التي تم الوصول إليها منذ 10/08/2019.

يجد . -نوع f-newerat2019-10-01 ! -أحدث 2019-11-01

* جميع الملفات التي تم الوصول إليها في أكتوبر.

ج) تاريخ الإنشاء:

يجد . -النوع f -newerct 2019-09-07

يجد . -نوع f -newerct 2019-09-07 ! -newerct "2019-09-09 07:50:00"

* الملفات التي تم إنشاؤها من 09/07/2019 00:00:00 إلى 09/09/2019 07:50

يكتب

ابحث فقط عن الملفات الموجودة في الدليل الحالي وجميع مجلداته الفرعية:

* F- البحث عن الملفات فقط.

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

نبحث عن كل ما يتعلق بالقراءة والكتابة:

ابحث عن / - بيرم 0666

نجد الملفات التي لا يستطيع الوصول إليها سوى المالك:

ابحث عن / - بيرم 0600

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

Find / -type f -exec grep -i -H "content" () \;

* في هذا المثال، يتم إجراء بحث متكرر لجميع الملفات الموجودة في الدليل / ويتم عرض قائمة بتلك التي تحتوي على السلسلة محتوى.

مرتبة حسب تاريخ التعديل

العثور على / نوع البيانات f -printf "%TY-%Tm-%Td %TT %p\n" | فرز -ص

* سيجد الأمر جميع الملفات الموجودة في الدليل /بيانات، سيضيف تاريخ التعديل إلى الاسم ويفرز البيانات حسب الاسم. ونتيجة لذلك، سأدرك أن الملفات ستسير بالترتيب الذي تم تغييرها به.

ابحث عن /home/user/* -type d -exec chmod 2700 () \;

* في هذا المثال نقوم بالبحث في كافة الدلائل ( اكتب د) في الدليل /المستخدمين المنزليينوتحديد الحقوق لهم 2700 .

التنظيف المقرر

فريق يجدمناسب للاستخدام لإزالة الملفات القديمة تلقائيًا.

افتح مهمة cron للتحرير:

ونضيف:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm() \;

* في هذا المثال نقوم بحذف كافة الملفات والمجلدات من الدليل / تمب،المئات أقدم 14 أيام. يتم تنفيذ المهمة كل يوم في 00:00 .
* ابحث عن المسار الكامل للملف القابل للتنفيذ باستخدام الأمر التي تجد- في أنظمة UNIX المختلفة يمكن وضعها في أماكن مختلفة.

هذا المقال مقتطف من كتاب " Linux&Unix - البرمجة في Shell"، ديفيد تانسلي.

لقد أجريت التعديلات على عجل قليلا؛ إذا لاحظت أي أخطاء مطبعية، يرجى الكتابة في التعليقات.

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

يتناول هذا الفصل المواضيع التالية المتعلقة باستخدام أمر البحث:

العثور على خيارات الأوامر؛

أمثلة على استخدام خيارات مختلفة لأمر البحث؛

أمثلة على استخدام xargs وأوامر البحث معًا.

إمكانيات أمر البحث واسعة النطاق، وقائمة الخيارات المقدمة كبيرة. ويتناول هذا الفصل أهمها. يمكن لأمر البحث أيضًا البحث في الأقراص NFS (نظام ملفات الشبكة- نظام ملفات الشبكة)، بالطبع، إذا كان لديك الأذونات المناسبة. في مثل هذه الحالات، يتم تشغيل الأمر عادةً في الخلفية لأن تصفح شجرة الدليل يستغرق وقتًا طويلاً. التنسيق العام لأمر البحث هو:

يجد اسم المسار -options

أين path_name- هذا هو الدليل الذي تبدأ منه البحث. يُستخدم الرمز '.' للإشارة إلى الدليل الحالي، والرمز / هو الدليل الجذر، والرمز '~' هو الرمز المخزن في المتغير. $المنزلالدليل الرئيسي للمستخدم الحالي.

2.1. ابحث عن خيارات الأوامر

دعنا نتناول وصف الخيارات الرئيسية لأمر البحث.

الاسم يبحث عن الملفات التي تتطابق أسماؤها مع نمط معين

طباعة يكتب الأسماء الكاملة للملفات التي تم العثور عليها إلى الإخراج القياسي

Perm ابحث عن الملفات التي تم تعيين وضع الوصول المحدد لها

يتم استخدام Prune لمنع أمر البحث من إجراء بحث متكرر على اسم المسار الذي تم العثور عليه بالفعل؛ إذا تم تحديد خيار -عمق، فسيتم تجاهل خيار -Prune

بحث المستخدم عن الملفات المملوكة لمستخدم محدد

البحث الجماعي عن الملفات التي تنتمي إلى مجموعة معينة

متايم -ن +نالبحث عن الملفات التي تم تعديل محتوياتها أقل من (-) أو أكثر من (+) نأيام مضت؛ هناك أيضًا خيارات -atime و -ctime، والتي تسمح لك بالبحث عن الملفات وفقًا لتاريخ آخر قراءة وتاريخ آخر تغيير لسمات الملف

Nogroup البحث عن الملفات التي تنتمي إلى مجموعة غير موجودة، والتي، بمعنى آخر، لا يوجد إدخال لها في الملف / الخ / المجموعات

يقوم Nouser بالبحث عن الملفات المملوكة لمستخدم غير موجود، والتي، بمعنى آخر، لا يوجد إدخال لها في الملف /etc/passwd

أحدث ملفالبحث عن الملفات التي تم إنشاؤها بعد الملف المحدد

نوع البحث عن الملفات من نوع معين وهي: ب- ملف كتلة خاص؛ د- فهرس؛ مع- ملف رمز خاص؛ ص- الأنبوب المسمى؛ ل- ارتباط رمزي؛ س- قابس كهرباء؛ F- ملف عادي

مقاس ن البحث عن الملفات التي حجمها نوحدات؛ وحدات القياس التالية ممكنة: ب- حجم الكتلة 512 بايت (الإعداد الافتراضي)؛ مع- بايت؛ ك- كيلو بايت (1024 بايت)؛ ث- كلمة ثنائية البايت

العمق عند البحث عن الملفات، يتم فحص محتويات الدليل الحالي أولاً وبعد ذلك فقط يتم فحص الإدخال المقابل للدليل نفسه

F stype يبحث عن الملفات الموجودة في نظام ملفات من نوع معين؛ عادة يتم تخزين المعلومات ذات الصلة في ملف /etc/fstabوالذي يحتوي على بيانات حول أنظمة الملفات المستخدمة على الكمبيوتر المحلي

يبحث Mount عن الملفات الموجودة في نظام الملفات الحالي فقط؛ ما يعادل هذا الخيار هو الخيار -xdev -exec - تنفيذ أمر مترجم صدَفَةلجميع الملفات المكتشفة؛ الأوامر المنفذة لها أمر التنسيق ( ) ؛

(لاحظ المسافة بين الحرفين () و 😉

حسنًا، يشبه -exec، ولكنه يعرض مطالبة قبل تنفيذ الأمر

2.1.1. خيار -اسم

عند العمل باستخدام أمر البحث، يتم استخدام خيار -name في أغلب الأحيان. ويجب أن يتبعه نمط اسم الملف بين علامتي اقتباس.
إذا كنت بحاجة إلى العثور على جميع الملفات ذات الامتداد . رسالة قصيرةفي الدليل الرئيسي الخاص بك، حدد الرمز كاسم المسار. سيتم استخراج اسم دليل البداية من المتغير $المنزل.

$ ابحث عن ~ -اسم "*.txt" -طباعة

للعثور على جميع الملفات ذات الامتداد .رسالة قصيرةالموجود في الدليل الحالي، استخدم الأمر التالي:

العثور على $. -الاسم "*.txt" -طباعة

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

العثور على $. -طباعة اسم

البحث في الكتالوج /إلخالملفات التي تبدأ أسماؤها بالحرف " يستضيف"، يسمح الأمر

$ ابحث عن /etc -اسم "hoat*" -print

ابحث في دليل البداية عن كافة الملفات ذات الامتداد .رسالة قصيرةوكذلك الملفات التي تبدأ أسماؤها بنقطة، ينتج الأمر

$ ابحث عن ~ -name "*.txt" -print -o -name ".*" -print

خيار -Oهو تسمية للعملية المنطقية OR. إذا تم استخدامه، بالإضافة إلى الملفات ذات الأسماء العادية، سيتم العثور على الملفات التي تبدأ أسماؤها بنقطة.

إذا كنت تريد إدراج كافة الملفات الموجودة على النظام والتي ليس لها امتداد، فقم بتشغيل الأمر أدناه، ولكن كن حذرًا لأنه قد يؤدي إلى إبطاء النظام بشكل كبير:

$ ابحث عن / -الاسم "*" -طباعة

فيما يلي يوضح كيفية العثور على جميع الملفات التي تبدأ أسماؤها بأحرف صغيرة، متبوعة برقمين وامتداد .رسالة قصيرة(على سبيل المثال، akh37.xt):

العثور على $. -الاسم » [أ-س] [أ-س] . النص" - طباعة

2.1.2. خيار -موج الشعر بإستمرار

يتيح لك خيار -perm العثور على الملفات باستخدام وضع وصول محدد. على سبيل المثال، للبحث عن الملفات ذات وضع الوصول 755 (يمكن لأي مستخدم عرضها وتنفيذها، ولكن يحق للمالك فقط كتابتها) يجب عليك استخدام الأمر التالي:

العثور على $. -بيرم 755 -طباعة

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

العثور على $. -بيرم -007 -طباعة

إذا تم إدخال علامة زائد قبل قيمة الوضع، فسيتم البحث عن الملفات التي تم تعيين واحدة على الأقل من بتات الإذن المحددة لها، ويتم تجاهل البتات المتبقية.

2.1.3. الخيار - تقليم

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

يقوم الأمر التالي بالبحث في الدليل الحالي دون الدخول إلى دليل فرعي /سلة مهملات:

العثور على $. -اسم "bin" -Prune -o -print

2.1.4. خيارات -user و-nouser

للعثور على الملفات المملوكة لمستخدم معين، حدد خيار -user في أمر البحث، متبوعًا باسم المستخدم. على سبيل المثال، البحث في الدليل الأولي عن الملفات المملوكة للمستخدم ديف، ويتم ذلك باستخدام الأمر التالي:

$ ابحث عن ~ -user dave -print

ابحث في الكتالوج /إلخالملفات المملوكة للمستخدم uucp، ينفذ الأمر التالي:

$ find /etc -uaer uucp -print

بفضل خيار -nouser، من الممكن البحث عن ملفات تخص مستخدمين غير موجودين. عند استخدامه يتم البحث عن الملفات التي ليس لأصحابها إدخال في الملف /etc/passwd. ليست هناك حاجة لتحديد اسم مستخدم محدد؛ يقوم أمر البحث بجميع الأعمال الضرورية بنفسه. للعثور على جميع الملفات المملوكة لمستخدمين غير موجودين والموجودة في الدليل /بيت، أدخل هذا الأمر:

$ find /home -nouaer -print

2.1.5. الخيارات -group و-nogroup

تتشابه خيارات -group و-nogroup مع خياري -user-nouser/apps لجميع الملفات المملوكة للمستخدمين في المجموعة com.acts:

$ ابحث عن /arra -group accta -print

يقوم الأمر التالي بالبحث في النظام بأكمله عن الملفات التي تنتمي إلى مجموعات غير موجودة:

$ العثور على / -nogroup -print

2.1.6. الخيار -mtime

يجب استخدام الخيار -mtime عند البحث عن الملفات التي تم الوصول إليها Xأيام مضت. إذا تم توفير وسيطة الخيار بعلامة '-'، فسيتم تحديد الملفات التي لم يتم الوصول إليها لفترة من الوقت. Xأيام. تؤدي الوسيطة التي تحتوي على علامة "+" إلى نتيجة عكسية - يتم تحديد الملفات التي تم الوصول إليها خلال آخر مرة Xأيام.

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

$ ابحث عن / -mtime -5 -print

يوجد أدناه الأمر الذي يبحث في الدليل /فار/admالملفات التي تم تحديثها خلال الأيام الثلاثة الماضية:

$ ابحث عن /var/adm -mtime +3 -print

2.1.7. -أحدث الخيار

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

أحدث old_file! -أحدث ملف جديد

لافتة ' ! ' هو عامل النفي المنطقي. يعني: العثور على الملفات الأحدث من old_file، ولكن أقدم من ملف جديد.

لنفترض أن لدينا ملفين تم تحديثهما بفارق يزيد قليلاً عن يومين:

Rwxr-xr-x 1 جذر الجذر 92 18 أبريل 11:18 age.awk
-rwxrwxr-x 1 جذر الجذر 1054 20 أبريل 19:37 أحزمة awk

للعثور على كافة الملفات التي تم تحديثها في وقت لاحق age.awk، ولكن قبل ذلك أحزمة.awk، قم بتشغيل الأمر التالي (استخدام الخيار -exec موضح أدناه):

العثور على $. -عصر جديد.أوك! -newer Belts.awk -exec Is -1 () ؛
-rwxrwxr-x 1 جذر الجذر 62 18 أبريل 11:32 ./who.awk
-rwxrwxr-x 1 جذر الجذر 49 18 أبريل 12:05 ./group.awk
-rw-r-r- 1 جذر الجذر 201 20 أبريل 19:30 ./grade2.txt
-rwxrwxr-x 1 جذر الجذر 1054 20 أبريل 19:37 ./belts.awk

ولكن ماذا لو كنت بحاجة إلى العثور على الملفات التي تم إنشاؤها، على سبيل المثال، خلال الساعتين الماضيتين، ولكن ليس لديك ملف تم إنشاؤه قبل ساعتين بالضبط للمقارنة به؟ إنشاء مثل هذا الملف! الأمر touch -t مخصص لهذا الغرض، حيث يقوم بإنشاء ملف بطابع زمني محدد بتنسيق MMDChhmm (شهر-يوم-ساعات-دقائق). على سبيل المثال:

$ لمس -t 05042140 dstamp
$ls -1 dstamp
-rw-r-r- 1 dave admin 0 4 مايو 21:40 dstamp

ستكون النتيجة ملفًا تاريخ إنشائه هو 4 مايو، وقت الإنشاء -21:40 (بافتراض أن الوقت الحالي هو 23:40). يمكنك الآن استخدام أمر البحث مع الخيار -newer للعثور على جميع الملفات التي تم تحديثها خلال الساعتين الماضيتين:

العثور على $. -طباعة بيانات جديدة

2.1.8. خيار -يكتب

نظام التشغيل يونيكسو لينكسدعم أنواع الملفات المختلفة. يتم البحث عن الملفات من النوع المطلوب باستخدام أمر البحث مع خيار -type. على سبيل المثال، للعثور على كافة الدلائل الفرعية في الدليل /إلخاستخدم هذا الأمر:

$ ابحث عن / إلخ - اكتب d -print

لسرد كافة الملفات وليس الدلائل، قم بتشغيل الأمر التالي:

العثور على $. ! -نوع د -طباعة

يوجد أدناه الأمر المصمم للعثور على جميع الروابط الرمزية في الدليل /إلخ.

$ ابحث عن / إلخ - النوع 1 - طباعة

2.1.9. خيار -مقاس

أثناء عملية البحث، يتم تحديد حجم الملف باستخدام خيار -size ن، أين ن- حجم الملف في كتل 512 بايت. الحجج المحتملة لها المعاني التالية: - البحث عن الملفات التي يكون حجمها أكبر من الحجم المحدد، - أقل من المحدد، ن- يساوي المعطى. إذا كانت الوسيطة تحدد الرمز بالإضافة إلى ذلك مع، فإن الحجم يعتبر محددًا بالبايت، وليس بالكتل، وإذا كان الحرف ك- بالكيلو بايت. للبحث عن الملفات التي يتجاوز حجمها 1 ميغابايت، استخدم الأمر

العثور على $. -aize -flOOOk -print

الأمر التالي يبحث في الدليل /الصفحة الرئيسية/أباتشيالملفات التي يبلغ حجمها 100 بايت بالضبط:

$ find /home/Apache -sixe 100s -print

يتيح لك الأمر التالي البحث عن ملفات أكبر من 10 كتل (5120 بايت):

العثور على $. -الحجم +10 -الطباعة

2.1.10. خيار الخيار - العمق

يتيح لك خيار -Deepth تنظيم البحث بحيث يتم أولاً فحص جميع ملفات الدليل الحالي (وبشكل متكرر جميع الدلائل الفرعية الخاصة به)، وفي النهاية فقط - إدخال الدليل نفسه. يُستخدم هذا الخيار على نطاق واسع عند إنشاء قائمة الملفات المراد أرشفتها على الشريط باستخدام الأمر cpio أو tar، لأنه في هذه الحالة تتم كتابة صورة الدليل أولاً على الشريط وبعد ذلك فقط يتم تعيين حقوق الوصول إليها. يسمح هذا للمستخدم بأرشفة تلك الدلائل التي ليس لديه إذن الكتابة لها.
يسرد الأمر التالي جميع الملفات والأدلة الفرعية للدليل الحالي:

العثور على $. -الاسم "*" -طباعة -o -اسم ".*" -طباعة -عمق

إليك ما قد تبدو عليه نتائج عملها:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/filel ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Subdir ./دير

2.1.11. خيار التثبيت

يتيح لك خيار -mount لأمر البحث البحث عن الملفات الموجودة على نظام الملفات الحالي فقط، باستثناء أنظمة الملفات المثبتة الأخرى. يبحث المثال التالي عن كافة الملفات ذات الامتداد .xcفي قسم القرص الحالي:

$ ابحث عن / -اسم "*.XC" -جبل -طباعة

2.1.12. البحث عن الملفات ثم أرشفتها باستخدام الأمر cpio

يتم استخدام الأمر cpio بشكل أساسي لكتابة الملفات إلى الشريط والقراءة منه. في كثير من الأحيان يتم استخدامه مع أمر البحث، حيث يتم تلقي قائمة الملفات منه عبر الأنبوب.

فيما يلي كيفية تسجيل محتويات الدليل على الشريط /إلخ, /بيتو /تطبيقات:

$ قرص مضغوط /
$ العثور على الخ الصفحة الرئيسية appa -deep -print | cpio -ov > dev/rmtO

خيار -Oيحدد الأمر cpio وضع كتابة الملفات على الشريط. خيار -الخامس (مطول- الوضع اللفظي) عبارة عن تعليمات لأمر cpio للإبلاغ عن كل ملف قيد المعالجة.

يرجى ملاحظة أن أسماء الدليل لا تحتوي على حرف "/" بادئ. بهذه الطريقة، يتم تعيين أسماء المسارات النسبية للأدلة المؤرشفة، والتي، عند قراءة الملفات من الأرشيف لاحقًا، ستسمح بإعادة إنشائها في أي جزء من نظام التشغيل، وليس فقط في الدليل الجذر.

2.1.13. الخيارات -exec و-ok

لنفترض أنك عثرت على الملفات التي تحتاجها وتريد تنفيذ إجراءات معينة عليها. في هذه الحالة، ستحتاج إلى الخيار -exec (بعض الأنظمة تسمح فقط بتنفيذ أوامر ls أو ls -1 باستخدام الخيار -exec). يستخدم العديد من المستخدمين الخيار -exec للعثور على الملفات القديمة لحذفها. أوصي بتشغيل ls بدلاً من rm للتأكد من أن أمر البحث يعثر على الملفات التي تريد إزالتها.

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

العثور على $. -نوع f -exec Xa -1 () ؛
-rwxr-xr-x 10 عجلة الجذر 1222 4 يناير 1993 ./sbin/C80
-rwxr-xr-x 10 عجلة الجذر 1222 4 يناير 1993 ./sbin/عادي
-rwxr-xr-x 10 عجلة الجذر 1222 4 يناير 1993 ./sbin/Rewid

يؤدي هذا إلى البحث عن الملفات العادية، والتي يتم عرض قائمة بها على الشاشة باستخدام الأمر ls -1.

للعثور على الملفات التي لم يتم تحديثها في الدليل /السجلاتخلال الخمسة أيام الماضية، وإزالتها، قم بتشغيل الأمر التالي:

$ find /log" -type f -mtime +5 -exec rm() ;

يجب أن تكون حذرًا عند نقل الملفات أو حذفها. استخدم الخيار -ok، الذي يسمح لك بتشغيل الأمرين mv وrm في الوضع الآمن (سيُطلب منك التأكيد قبل معالجة الملف التالي). في المثال التالي، يقوم أمر البحث بالبحث عن الملفات ذات الامتداد .سجل، وإذا تم إنشاء ملف منذ أكثر من خمسة أيام، فإنه يقوم بحذفه، ولكن يطلب منك أولاً تأكيد هذه العملية:

العثور على $. -اسم "*.LOG" -mtime +5 -ok rm () ؛
< rm … ./nets.LOG >؟ في

لحذف ملف، أدخل في، ولمنع هذا الإجراء - ن.

2.1.14. أمثلة إضافية لاستخدام أمر البحث

دعونا نلقي نظرة على بعض الأمثلة الأخرى التي توضح استخدام أمر البحث. فيما يلي كيفية العثور على جميع الملفات في دليل البداية الخاص بك:

$ العثور على ~ -طباعة

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

العثور على $. - نوع f - بيرم +4000 - طباعة

للحصول على قائمة بالملفات الفارغة، استخدم هذا الأمر:

$ find / -type f -size 0 -exec Is -1 () ؛

يقوم أحد أنظمتي بإنشاء سجل تدقيق النظام كل يوم. تتم إضافة رقم إلى اسم ملف السجل، مما يسمح لك بتحديد الملف الذي تم إنشاؤه لاحقًا والملف الذي تم إنشاؤه مسبقًا على الفور. على سبيل المثال، إصدارات الملفات admin.logمرقمة بالتسلسل: admin.log.001، admin.log.002إلخ. يوجد أدناه أمر البحث الذي يزيل كافة الملفات admin.logتم إنشاؤه منذ أكثر من سبعة أيام:

$ ابحث عن /logs -name 'admin.log.1 -atima +7 exec rm () ؛

2.2. فريق اكسارج

عند وجود الخيار -exec، يقوم أمر البحث بتمرير جميع الملفات التي تم العثور عليها إلى الأمر المحدد، والتي تتم معالجتها في وقت واحد. لسوء الحظ، يكون طول سطر الأوامر محدودًا في بعض الأنظمة، لذلك عند معالجة عدد كبير من الملفات، قد تتلقى رسالة خطأ نصها عادةً: "العديد من الوسائط"(عدد كبير جدًا من الحجج) أو "الحجج طويلة جدًا"(قائمة الوسائط كبيرة جدًا). في هذه الحالة، يأتي أمر xargs للإنقاذ. يقوم بمعالجة الملفات المستلمة من أمر البحث على أجزاء، وليس دفعة واحدة.

خذ بعين الاعتبار مثالًا يقوم فيه أمر البحث بإرجاع قائمة بجميع الملفات الموجودة على النظام، ويقوم الأمر xargs بتشغيل أمر الملف عليها، والتحقق من نوع كل ملف:

العثور على $ / - نوع f - طباعة ملف xarge
/etc/protocols: نص باللغة الإنجليزية /etc/securetty: نص ASCII

فيما يلي مثال يوضح البحث عن ملفات التفريغ التي يضع أمر الصدى أسمائها في ملف /tmp/core.log.

$ العثور على / -الاسم الأساسي -طباعة | صدى xarge > /tmp/core.log

في المثال التالي، في الدليل /apps/auditيبحث عن جميع الملفات التي يتمتع المستخدمون الآخرون بإمكانية الوصول الكامل إليها. يقوم الأمر chmod بإزالة إذن الكتابة لهم:

$ ابحث عن /appe/audit -perm -7 -print | xarge chmod o-w

يعد تقريب قائمتنا مثالًا يبحث فيه الأمر grep عن الملفات التي تحتوي على الكلمة " جهاز«:

$ العثور على / - نوع f - طباعة | xarge grep "جهاز"

2.3. خاتمة

يعد أمر البحث أداة ممتازة للبحث في الملفات المختلفة باستخدام مجموعة واسعة من المعايير. بفضل الخيار -exec، بالإضافة إلى الأمر xargs، يمكن معالجة الملفات التي تم العثور عليها بواسطة أي أمر نظام تقريبًا.

قد تكون على دراية بالمشكلة التالية: لا يمكنك العثور على ملف، ولكنه موجود في مكان ما على جهاز الكمبيوتر. ثم أمر البحث مناسب.

تسأل: كيفية استخدامه؟ هناك صفحة رجل ضخمة لهذا البرنامج، وسوف ننظر في بعض الحالات الشائعة.

يمكنك البدء بالأبسط: إذا كنت تعرف اسم الملف، فيمكنك العثور عليه بسهولة! كل ما عليك فعله هو كتابة بحث وتحديد اسم ملف محدد!

ملفات بحث Linux بالاسم

هذا هو نفس الأمر البسيط:

البحث عن اسم الحب
إذا كان هناك ملف باسم "love"، فسيقوم أمر البحث بالعثور على موقع الملف أو ملفات متعددة مثل هذا:

Jzb@kodos:~$ ابحث عن -name love ./projects/love jzb@kodos:~$
على سبيل المثال، سوف نبحث عن جميع الملفات بتنسيق mp3 ونقوم بعمل قائمة كاملة في الملف:

ملف /home/artix -iname ".mp3" > ./list.txt

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

بعد ذلك، سنجد الملفات بتنسيق txtx، وليس الملفات فقط، بل الملفات النصية التي تحتوي على كلمة “LEON”:

ملف /home/artix -iname ".txt" -exec grep -H "LEON" "()" \; > ./list.txt
عظيم، لدينا بالفعل اتضح أنه يتم البحث عن ملفات Linux بالكلمة"ليون". بنفس الطريقة، يمكنك إزالة الأشياء غير الضرورية، وفي الخلفية، حتى تتمكن من مواصلة العمل:

ملف /home/artix -iname ".bak" -exec rm "()" \; &
وهذا يجعل حياتنا أسهل. هذه هي أبسط الأشياء، ولكن هناك الكثير من الأشياء المفيدة فيها.

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

ابحث عن ./ -mmin -10 # تاريخ التعديل أقل من 10 دقائق ابحث ./ -mtime +1 # تاريخ التعديل أكثر من 24 ساعة ابحث ./ -type f -atime +10 # وقت الوصول أكثر من 10 أيام ابحث ./ -type f -amin - 10 #تاريخ التعديل آخر 10 دقائق

البحث عن نص في ملفات Linux

غالبًا ما تحتاج إلى البحث عن نص في ملفات Linux. سأقدم مثالين للبحث عن الملفات: (linux، freebsd) تحتاج إلى جزء من النص في الملفات:

# find /var/named/ -type f -exec grep "MX" () \; serversnetwork.info. 14400 في بريد MX 10
و واحدة اخرى:

# grep -rl "MX" /var/named/ /var/named/serversnetwork.info.db

البحث عن الملفات حسب الحجم
في بعض الأحيان، يمكنك استخدام أوامر أخرى للبحث عن ملفات Linux. على سبيل المثال، لاحظت كيف أن بعض الأقسام بدأت في زيادة الحجم على جهاز الكمبيوتر الخاص بك. للعثور على الملف المرتبط به، أو المجلد الممتلئ، يمكنك استخدام الأمر التالي:

البحث عن حجم 95K.
سيؤدي هذا إلى العثور على ملفات بحجم 95 كيلو بايت. ولكن هذا الخيار نادرا ما يستخدم. يستخدمون في الغالب الأوامر التي يمكن استخدامها للعثور على ملف أكبر أو أصغر من الحجم المحدد. على سبيل المثال الخيار:

البحث عن -حجم +150 ألف
يجب أن تظهر الملفات التي يزيد حجمها عن 150 كيلو بايت. والخيار

ابحث عن -الحجم -94 ك
كل ما هو أقل من 94K.

تبحث الدالة -size عن الملفات ذات الحجم المحدد وتبدو هكذا عند تنفيذها:

العثور على $. - مقاس 3500 ك - طباعة
هذا الخيار سيبحث عن الملفات في Linux ويعرضها على الشاشةتلك التي يبلغ حجمها 3500 كيلو بايت والموجودة في هذا المجلد. إذا كنت تريد العثور على ملفات أصغر من 250 كيلو بايت، فسيبدو الأمر كما يلي:

العثور على $. -الحجم -200 ك -الطباعة
إذا كنت بحاجة إلى العثور على ملفات حجمها أكبر من 555 ميغابايت، فسنستخدم الخيار:

$ البحث / -الحجم +555M -طباعة
ربما هذا هو المكان الذي سأنتهي فيه من كتابة مقالتي.

الآن قد تتمكن من البحث عن الملفات بنفسك، والبحث عن النص في ملفات Linux، والبحث عن الملفات حسب التاريخ!

شكرا للجميع، وداعا!

من الضروري العثور على ملفات في الدليل تحتوي على عبارة معينة. كيف افعلها؟ أعتقد أن العديد من الأشخاص واجهوا مشكلة مماثلة أكثر من مرة، مثل الحاجة إلى العثور على ملف في مجلد به ملفات (وأحيانًا مجلدات فرعية يكون من الجيد أيضًا البحث فيها) ومعرفة جزء من نصه (حسنًا، أو التخمين حول هذا الموضوع). أنا أيضًا تعثرت في هذه الحاجة عدة مرات وأخيراً تمكنت من الوصول إليها وكتبت نصًا صغيرًا bash ينفذ هذه المهمة. ليست المهمة الأكثر شيوعًا، ولكنها لا تزال تحدث، هي البحث عن الملف القابل للتنفيذ لبرنامج ما. يأخذ اسم البرنامج كمعلمة، وبعد التنفيذ يعرض قائمة بمواقع الملفات المتزامنة في الجهاز. في بعض الأحيان قد تحتاج إلى البحث عن ملف يحتوي على سطر معين أو البحث عن سطر في ملف يحتوي على الكلمة المطلوبة. في Linux، يتم كل هذا باستخدام أداة مساعدة واحدة بسيطة جدًا ولكنها قوية في نفس الوقت، وهي grep. بمساعدتها، يمكنك البحث ليس فقط عن الأسطر في الملفات، ولكن أيضًا تصفية مخرجات الأوامر، وغير ذلك الكثير.

غالبًا ما تنشأ مواقف عندما تحتاج إلى العثور على نص ما، لكنك لا تتذكر الملف/الملفات التي يحتوي عليها. سر شعبيتها هو قوتها؛ فهي تسمح للمستخدمين بفرز النص وتصفيته بناءً على قواعد معقدة.

يعد الأمر grep (يرمز إلى طباعة التعبير العادي العالمي) أحد أكثر الأوامر شيوعًا في محطة Linux وهو جزء من مشروع GNU.

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

grep -r -n "نص" /مسار

grep -r "سلسلة البحث"
grep -rl $"\xEF\xBB\xBF"

أين:
-n يُظهر السطر الذي تم العثور فيه على القطعة؛
-r يبحث بشكل متكرر، في الملفات الموجودة في الدليل / المسار نفسه وفي الدلائل الفرعية الخاصة به؛

يمكنك أيضًا إضافة خيار -C 3 لرؤية +- 3 أسطر حول (أعلى وأسفل الخط الموجود).

للعثور على ملف من خلال محتوياته في جميع أنظمة التشغيل المشابهة لنظام التشغيل Linux، ما عليك سوى استخدام أداة البحث.

بحث Linux حسب محتويات الملف باستخدام أمر البحث

يعد أمر البحث نوعًا من سكين الجيش السويسري عندما يتعلق الأمر بالعثور على الملفات. لاحظ أنه يحتوي على العديد من الخيارات التي يمكنها تغيير آلية البحث بشكل جذري. سنحدد المبادئ الأساسية فقط، ونتحقق من بقية القدرات في مساعدة الأوامر. المبدأ الأساسي لاستخدام البحث هو تحديد مجلد البحث والخيارات. على سبيل المثال، سيبحث التعبير "find ~/ -name *.cpp" عن الملفات التي لها الاستمرارية "cpp" في كافة الدلائل الموجودة في الدليل الشخصي للمستخدم.

/usr/bin/find /folder -type f -exec grep -H "search string" () ؛

تحدد القيمة المحددة بعد خيار -name نمط تعيين اسم الملف. يمكنك استخدام خيار -type لتحديد نوع الملف، حيث تحتاج إلى استخدام أحرف خاصة في خاصية القيمة: d للدليل، وf للملف، وl للارتباط الرمزي، وما إلى ذلك. وظائف -user و-group و-size هي أيضًا مفيدة جدًا. قيمها هي اسم المستخدم واسم الفئة وحجم الملف بالبايت.

ابحث عن /var/www/ -اسم "file.conf"
ابحث عن /var/www/ -name "*.conf"

وبدعم من الخيار -exec، يمكن إضافة معالجة عشوائية لكل ملف مخصص لمطابقته. وبالتالي، يصبح من الممكن البحث عن طريق اسم الملف وعن طريق الملف المغطى. فيما يلي مثال على الجمع بين البحث و grep باستخدام الدالة -exec.

ابحث عن ~/ -name *.cpp
ابحث عن ~/ -name *.cpp -user "my-username" -group "my-group"
ابحث عن ~/ -name "*.config" -type f -exec grep "user" () \;
ابحث عن /home/ (-name "*.php" -أو -name "*.html" -أو -name "*.js")
-exec grep -lHEi $"\xEF\xBB\xBF" () ;

وربما أبسط

بحث Linux حسب محتويات الملف وبأي أمر

يبحث الأمر "أي" فقط عن الملفات التي لها الحق في التنفيذ كبرامج. يتم إجراء البحث في الدلائل المحددة في متغير بيئة PATH. قد تختلف محتويات متغير PATH باختلاف المستخدمين. لتغطية أكبر عدد ممكن من أدلة النظام، يجب عليك تسجيل الدخول باستخدام حساب المسؤول.

أي قطة
/بن/قطة
أي كومة عامل ميناء
/home/username/.local/bin/docker-stack

يبحث Linux عن محتويات الملف باستخدام أمر تحديد الموقع

البحث الذي يتم إجراؤه بواسطة أمر تحديد الموقع سريع جدًا. ومع ذلك، ضع في اعتبارك أن قاعدة بيانات النظام قد لا تكون نشطة في وقت العملية. قد تختلف آلية فحص نظام الملفات، والوقت الذي يستغرقه، وبشكل عام، توفر هذه الأداة باختلاف توزيعات Linux. يكون أمر تحديد الموقع مفيدًا فقط عند البحث عن ملف باسمه. ومع ذلك، للتحقق من المحتوى النصي للمستندات للتأكد من وجود البيانات المطلوبة، تحتاج إلى استخدام أداة أخرى.

يبدو أن أمر تحديد الموقع هو بديل للبحث.

يعمل هذا الفريق، كقاعدة عامة، بشكل أسرع ويمكنه بسهولة البحث (بالمعنى الواسع - الرغبة في تحقيق شيء ما، والعثور على شيء ما؛ إجراءات الموضوع التي تهدف إلى الحصول على معلومات جديدة أو مفقودة (منسية): معلومات جديدة (البحث عن المعلومات)، والبيانات ) في جميع أنحاء نظام الملفات. يحتوي Linux على أمر grep خاص يأخذ نمط بحث واسم ملف (منطقة بيانات مسماة على وسيط تخزين). إذا تم العثور على تطابقات، فسيتم عرضها في المحطة. بشكل عام، يمكن أن يتكون التعبير على هيئة "grep search_pattern file_name". لتحديد موقع الملفات باستخدام أمر تحديد الموقع، ما عليك سوى استخدام بناء الجملة التالي:

على سبيل المثال، لإرجاع الملفات التي تحتوي على الاستعلام نفسه فقط، بدلاً من إدخال كل ملف يحتوي على الاستعلام في الدلائل المؤدية إليه، يمكنك استخدام العلامة -b (للبحث في الاسم الأساسي فقط، الاسم الأساسي للملف):

تعد أوامر البحث وتحديد الموقع أدوات ممتازة لتحديد موقع الملفات على أنظمة التشغيل المشابهة لـ UNIX. كل من هذه المرافق لها مزاياها. لقد نظرنا في استخدام الأوامر للبحث وتصفية مخرجات الطاقم في نظام التشغيل Linux. عند استخدامها بشكل صحيح، ستصبح هذه الأداة أداة قوية بين يديك. على الرغم من أن أوامر البحث وتحديد الموقع فعالة جدًا في حد ذاتها، إلا أنه يمكن توسيعها من خلال دمجها مع أوامر أخرى. بمجرد أن تتعلم كيفية التعامل مع البحث وتحديد الموقع، حاول تنظيف نتائجها باستخدام أوامر wc، وsort، وgrep.

سنلقي نظرة اليوم على العديد من الطرق الأكثر شيوعًا للبحث عن الملفات في Linux باستخدام الجهاز.

1) العثور على:للبحث عن الملفات من سطر الأوامر، يمكنك استخدام الأمر "العثور على". يحتوي هذا الأمر على بناء الجملة التالي:

العثور على إجراءات معايير المسار

"طريق" - قسم لتحديد دليل البحث. إذا لم يتم تحديد أي شيء، فسيتم إجراء البحث في الدليل الحالي.

"معايير" - خيارات البحث.

"فعل" - الخيارات التي تؤثر أو تتحكم في حالة البحث، على سبيل المثال.

2) تحديد موقع:فريق "حدد"هذا بديل لأمر "find -name". يبحث أمر البحث عن الملفات الموجودة في الجزء المحدد من نظام الملفات وقد لا تكون العملية سريعة جدًا. من ناحية أخرى، يبحث أمر تحديد الموقع عن الملفات في قاعدة البيانات التي تم إنشاؤها خصيصًا لهذا الغرض /var/lib/locatedb، وهو أسرع بكثير. لتحديث قاعدة البيانات استخدم الأمر محدثب.

3) حيث:أين هو"تقوم بإرجاع موقع التعليمات البرمجية (الخيار -b)، وصفحات الدليل (الخيار -m)، والملفات المصدر (الخيار -s) للأمر المحدد. إذا لم يتم تحديد أي خيارات، فسيتم عرض جميع المعلومات المتاحة. هذا الأمر أسرع من " يجد"ولكن أقل اكتمالا.

4) التي:فريق " أيّ"يبحث في كافة المسارات المدرجة في متغير PATH للأمر المحدد.

5) النوع:

عند الاتصال بدون خيارات، يظهر كيف سيتم تفسير الأسماء

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

الاسم المقابل. تتضمن القائمة أيضًا أسماء مستعارة ووظائف،

ما لم يتم تحديد الخيار . ل

لا يمكن الوصول إلى تجزئة الأمر إذا تم تحديد الخيار . فريق يكتبيعود 0,

إذا تم العثور على واحدة على الأقل من الوسيطات، و1 خلاف ذلك.

يحمي

Explo.ru - كل ما يتعلق بالسياحة والترفيه: جولات اللحظة الأخيرة ورحلات إلى تركيا، مصر،