استبعاد دلائل معينة في العثور على نتائج في AIX

أحاول البحث عن كافة الدلائل التي لها سمات ممتدة (-ea) ولكن ليس لديها سلسلة معينة في اسم المسار. انا احاول:

find/-ea -type d ! -name '*arcdst*'

ومع ذلك هذا ما زال يعود/arcdst وجميع الدلائل تحته. لقد بحثت في إجابات مماثلة على هذا الموقع ، ولكن في صفحة AIX man -not غير متوفرة ولا هي -path. هذا هو AIX 6.1 TL6.

شكرا جزيلا، LarryD

0
shellter ربما أفتقد بعض الأمور ، ولكن لا أعتقد أن xargs مطلوب هنا ... فقط find ... | grep -v ... . وإلا فإنه يحاول البحث في جميع محتويات الملفات ...
وأضاف المؤلف twalberg, مصدر
shellter ربما أفتقد بعض الأمور ، ولكن لا أعتقد أن xargs مطلوب هنا ... فقط find ... | grep -v ... . وإلا فإنه يحاول البحث في جميع محتويات الملفات ...
وأضاف المؤلف twalberg, مصدر
shellter ربما أفتقد بعض الأمور ، ولكن لا أعتقد أن xargs مطلوب هنا ... فقط find ... | grep -v ... . وإلا فإنه يحاول البحث في جميع محتويات الملفات ...
وأضاف المؤلف twalberg, مصدر
twalberg: صحيح. في وقت متأخر (العش) تعليق لي في الخطأ. 8-/Tnx.
وأضاف المؤلف shellter, مصدر
twalberg: صحيح. في وقت متأخر (العش) تعليق لي في الخطأ. 8-/Tnx.
وأضاف المؤلف shellter, مصدر
twalberg: صحيح. في وقت متأخر (العش) تعليق لي في الخطأ. 8-/Tnx.
وأضاف المؤلف shellter, مصدر
للأسف ، أتلقى الخطأ التالي ، ولكن شكرًا لك على تعليقك find: 0652-017 -print0 ليس خيارًا صالحًا.
وأضاف المؤلف LarryD, مصدر
للأسف ، أتلقى الخطأ التالي ، ولكن شكرًا لك على تعليقك find: 0652-017 -print0 ليس خيارًا صالحًا.
وأضاف المؤلف LarryD, مصدر

6 إجابة

بدلاً من -name يجب عليك استخدام ! "نمط" نمط "" :

find/-ea -type d ! -path "*arcdst*"

سيؤدي ذلك إلى تخطي كافة الدلائل ضمن مسار "* arcdst *"

أو يمكنك استخدام خيار -regex :

find/-ea -type d ! -regex ".*arcdst.*"
0
وأضاف
تحقق من الإجابة المحدثة مع خيار -regex .
وأضاف المؤلف anubhava, مصدر
قد لا تدعم الثنائيات القديمة للبحث عن -path الخيار. ولكن -path هي بالفعل الطريقة الصحيحة للحصول على الإخراج الصحيح.
وأضاف المؤلف anubhava, مصدر
هذا ما فعلته على خادمي غير المتخرج ، حيث أن/usr/bin/find مؤرخ بتاريخ 17 سبتمبر 2012. ولكن عندما جربته على خادم prod حيث يجب تشغيل السيناريو الخاص بي في النهاية ، فإن الملف مؤرخ في Aug 09 2011 ، أحصل على هذا: find: 0652-017 -path ليس خيارًا صالحًا. ولكن حتى في الإصدار الأحدث من البحث عن صفحة الرجل لا يذكر هذا الخيار ، أتمنى أن يكون ذلك لأنه يبدو أنه يعمل.
وأضاف المؤلف LarryD, مصدر

بدلاً من -name يجب عليك استخدام ! "نمط" نمط "" :

find/-ea -type d ! -path "*arcdst*"

سيؤدي ذلك إلى تخطي كافة الدلائل ضمن مسار "* arcdst *"

أو يمكنك استخدام خيار -regex :

find/-ea -type d ! -regex ".*arcdst.*"
0
وأضاف
تحقق من الإجابة المحدثة مع خيار -regex .
وأضاف المؤلف anubhava, مصدر
قد لا تدعم الثنائيات القديمة للبحث عن -path الخيار. ولكن -path هي بالفعل الطريقة الصحيحة للحصول على الإخراج الصحيح.
وأضاف المؤلف anubhava, مصدر
هذا ما فعلته على خادمي غير المتخرج ، حيث أن/usr/bin/find مؤرخ بتاريخ 17 سبتمبر 2012. ولكن عندما جربته على خادم prod حيث يجب تشغيل السيناريو الخاص بي في النهاية ، فإن الملف مؤرخ في Aug 09 2011 ، أحصل على هذا: find: 0652-017 -path ليس خيارًا صالحًا. ولكن حتى في الإصدار الأحدث من البحث عن صفحة الرجل لا يذكر هذا الخيار ، أتمنى أن يكون ذلك لأنه يبدو أنه يعمل.
وأضاف المؤلف LarryD, مصدر

بدلاً من -name يجب عليك استخدام ! "نمط" نمط "" :

find/-ea -type d ! -path "*arcdst*"

سيؤدي ذلك إلى تخطي كافة الدلائل ضمن مسار "* arcdst *"

أو يمكنك استخدام خيار -regex :

find/-ea -type d ! -regex ".*arcdst.*"
0
وأضاف
تحقق من الإجابة المحدثة مع خيار -regex .
وأضاف المؤلف anubhava, مصدر
قد لا تدعم الثنائيات القديمة للبحث عن -path الخيار. ولكن -path هي بالفعل الطريقة الصحيحة للحصول على الإخراج الصحيح.
وأضاف المؤلف anubhava, مصدر
هذا ما فعلته على خادمي غير المتخرج ، حيث أن/usr/bin/find مؤرخ بتاريخ 17 سبتمبر 2012. ولكن عندما جربته على خادم prod حيث يجب تشغيل السيناريو الخاص بي في النهاية ، فإن الملف مؤرخ في Aug 09 2011 ، أحصل على هذا: find: 0652-017 -path ليس خيارًا صالحًا. ولكن حتى في الإصدار الأحدث من البحث عن صفحة الرجل لا يذكر هذا الخيار ، أتمنى أن يكون ذلك لأنه يبدو أنه يعمل.
وأضاف المؤلف LarryD, مصدر

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

إذا كنت لا تمانع في أن النفقات العامة قليلا ، يمكنك تصفية النتائج.

find/-ea -type d | grep -v 'arcdst'

عندما لا تريد البحث عن arcdst في المقام الأول ، يمكنك أن تقول لا تجد في دليل arcdst

find $(ls/| grep -v arcdst) -ea -type d 
0
وأضاف

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

إذا كنت لا تمانع في أن النفقات العامة قليلا ، يمكنك تصفية النتائج.

find/-ea -type d | grep -v 'arcdst'

عندما لا تريد البحث عن arcdst في المقام الأول ، يمكنك أن تقول لا تجد في دليل arcdst

find $(ls/| grep -v arcdst) -ea -type d 
0
وأضاف

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

إذا كنت لا تمانع في أن النفقات العامة قليلا ، يمكنك تصفية النتائج.

find/-ea -type d | grep -v 'arcdst'

عندما لا تريد البحث عن arcdst في المقام الأول ، يمكنك أن تقول لا تجد في دليل arcdst

find $(ls/| grep -v arcdst) -ea -type d 
0
وأضاف