سؤال كيف أقوم بتشغيل أمر على كل ملف داخل دليل يطابق النمط؟


أحاول تشغيل أمر على كل ملف داخل مجلد (بشكل متكرر) يتطابق مع نمط. أحتاج اسم الملف لكل عنصر يطابق للأمر ومع ذلك. هذا هو مدى ما حصلت عليه:

find . -name '*.jar'

هذا يعطيني جميع الملفات التي أنا مهتم بها. الآن ، أنا بحاجة إلى تشغيل الأمر التالي على جميع هذه الملفات:

jarsigner -keystore ***** -storepass ****** $FILENAMEHERE

كيف يمكنني الرجوع إلى العناصر الفردية في إخراج البحث عن الأمر؟


2
2017-08-19 08:56


الأصل




الأجوبة:


إذا jarsigner يأخذ اسم ملف واحد فقط في كل مرة ، استخدم إما

find . -iname '*.jar' | xargs -l jarsigner -keystore ***** -storepass ******

أو

find . -iname '*.jar' -exec jarsigner -keystore ***** -storepass ***** {} \;

6
2017-08-19 09:10



نعم ، xargs يجعل الأمور أكثر قابلية للقراءة! ومع ذلك يقول الرجل إن الخيار '-l' قد تم إهماله: '-L 1' يجب أن يفعل الشيء نفسه. - cYrus