هل هناك أي طريقة لمنع البحث من البحث بشكل متكرر في الدلائل الفرعية؟

StackOverflow https://stackoverflow.com/questions/27077

  •  09-06-2019
  •  | 
  •  

سؤال

عندما أفعل:

$ find / 

إنه يبحث في النظام بأكمله.
كيف يمكنني منع ذلك؟

(هذا السؤال يأتي من "إجابة"إلى سؤال آخر.)

هل كانت مفيدة؟

المحلول

يوم سعيد،

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

find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)

سيؤدي هذا إلى إيقاف البحث عن النزول إلى الدلائل الفرعية داخل هذا الدليل.

في الأساس، تقول الرسالة، "قم بتقليم أي شيء يمثل دليلاً، واسمه ليس "."، أي.دير الحالي."

يتم تقييم أمر البحث من اليسار إلى اليمين لكل عنصر موجود في الدليل الحالي، وذلك بعد الانتهاء من العنصر الأول، أي.شريحة التقليم، فسوف تستمر بعد ذلك مع العنصر المطابق في تعبير -o (OR'd) الثاني.

هث.

هتافات ، روب

نصائح أخرى

يعتبر:

-maxdepth n
             True if the depth of the current file into the tree is less than
             or equal to n.

-mindepth n
             True if the depth of the current file into the tree is greater
             than or equal to n.

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

$ ls *.ksh

استخدم ال -تقليم خيار.

يمكنك حتى أن تفعل

echo /specific/dir/*.jpg

لأن قوقعتك هي التي تعمل على توسيع حرف البدل.الكتابة

ls *.jpg

يعادل الكتابة

ls foo.jpg bar.jpg

نظرًا لأن foo.jpg وbar.jpg هي جميع الملفات التي تنتهي بـ ".jpg" في الدليل الحالي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top