الإجراءات المحددة مسبقًا
لنبدأ العمل! لدينا قائمة بالنتائج من جد الأمر مفيد، لكن ما نريد فعله حقًا هو تنفيذ العناصر في القائمة. لحسن الحظ، جد يسمح بتنفيذ إجراءات بناءً على نتائج البحث. هناك مجموعة من الإجراءات المحددة مسبقًا، بالإضافة إلى عدة طرق لتطبيقها. لنلقِ نظرة أولًا على بعض الإجراءات المحددة مسبقًا:
الجدول 17-6: إجراءات البحث المحددة مسبقًا
وصف الإجراء
وصف الإجراء
-delete حذف الملف المطابق حاليًا.
-لس قم بأداء ما يعادل ls -dils على الملف المطابق.
يتم إرسال الإخراج إلى الإخراج القياسي.
-print: إخراج المسار الكامل للملف المطابق إلى الإخراج القياسي. هذا هو الإجراء الافتراضي في حال عدم تحديد أي إجراء آخر.
-quit قم بالخروج بعد الانتهاء من المباراة.
كما هو الحال مع الاختبارات، هناك العديد من الإجراءات الأخرى. انظر جد صفحة الدليل للاطلاع على التفاصيل الكاملة. في مثالنا الأول، قمنا بما يلي:
تجد ~
تجد ~
الذي أنتج قائمة بكل ملف ومجلد فرعي موجود في دليلنا الرئيسي. وقد أنتج القائمة لأن -طباعة يُستدل على الفعل إذا لم يُحدد أي فعل آخر. وبالتالي، يُمكن التعبير عن أمرنا كما يلي:
البحث ~ - الطباعة
البحث ~ - الطباعة
يمكننا استخدام جد لحذف الملفات التي تستوفي معايير معينة. على سبيل المثال، لحذف الملفات التي
إذا كان لديك ملحق الملف ".BAK" (والذي يستخدم غالبًا للإشارة إلى ملفات النسخ الاحتياطي)، فيمكننا استخدام هذا الأمر:
البحث ~ -type f -name '*.BAK' -delete
البحث ~ -type f -name '*.BAK' -delete
في هذا المثال، يتم البحث في كل ملف في دليل المستخدم الرئيسي (والدلائل الفرعية الخاصة به) عن أسماء الملفات التي تنتهي بـ .باك. عندما يتم العثور عليها، يتم حذفها.
: تحذير لا داعي للقول أنه يجب عليك استخدم الحذر الشديد عند استخدام -حذف الإجراء. اختبر الأمر دائمًا أولاً عن طريق استبدال
-طباعة الإجراء لـ -حذف لتأكيد نتائج البحث.
قبل أن نكمل، دعونا نلقي نظرة أخرى على كيفية تأثير العوامل المنطقية على الإجراءات. لنأخذ الأمر التالي:
البحث ~ -type f -name '*.BAK' -print
البحث ~ -type f -name '*.BAK' -print
كما رأينا، سيبحث هذا الأمر عن كل ملف عادي (-type f) ينتهي اسمه بـ .BAK (-name '*.BAK') وسيُخرِج اسم المسار النسبي لكل ملف مطابق إلى المخرجات القياسية (-print). ومع ذلك، فإن سبب أداء الأمر بهذه الطريقة يتحدد بالعلاقات المنطقية بين كلٍّ من الاختبارات والإجراءات. تذكر، توجد افتراضيًا علاقة ضمنية -and بين كل اختبار وإجراء. يمكننا أيضًا التعبير عن الأمر بهذه الطريقة لتسهيل فهم العلاقات المنطقية:
ابحث عن ~ -type f -و-name '*.BAK' -و-print
ابحث عن ~ -type f -و-name '*.BAK' -و-print
بعد أن تم التعبير عن أمرنا بالكامل، دعنا نلقي نظرة على كيفية تأثير العوامل المنطقية على تنفيذه:
يتم إجراء الاختبار/الإجراء فقط إذا...
يتم إجراء الاختبار/الإجراء فقط إذا...
-طباعة -type f و-name '*.BAK' صحيحان
-الاسم '*.BAK' من نوع f صحيح
من نوع f يتم تنفيذه دائمًا، لأنه الاختبار/الإجراء الأول في
-والعلاقة.
بما أن العلاقة المنطقية بين الاختبارات والإجراءات تُحدد أيها سيتم إجراؤه، نرى أن ترتيب الاختبارات والإجراءات مهم. على سبيل المثال، إذا أعدنا ترتيب الاختبارات والإجراءات بحيث -طباعة كان الإجراء هو الإجراء الأول، وكان الأمر سيتصرف بشكل مختلف تمامًا:
ابحث عن ~ -print -and -type f -and -name '*.BAK'
ابحث عن ~ -print -and -type f -and -name '*.BAK'
ستقوم هذه النسخة من الأمر بطباعة كل ملف ( -طباعة يتم تقييم الإجراء دائمًا على أنه صحيح) ثم اختبار نوع الملف وملحق الملف المحدد.