ฉันจะเรียกใช้คำสั่งในแต่ละไฟล์ภายในไดเรกทอรีที่ตรงกับรูปแบบได้อย่างไร


2

ฉันพยายามเรียกใช้คำสั่งในทุกไฟล์ภายในไดเรกทอรี (วนซ้ำ) ที่ตรงกับรูปแบบ ฉันต้องการชื่อไฟล์ของแต่ละรายการที่ตรงกับคำสั่งอย่างไรก็ตาม นี่คือสิ่งที่ฉันได้:

find . -name '*.jar'

นั่นให้ไฟล์ทั้งหมดที่ฉันสนใจตอนนี้ฉันต้องเรียกใช้คำสั่งต่อไปนี้ในทุกไฟล์เหล่านั้น

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

ฉันจะอ้างอิงแต่ละไอเท็มในเอาต์พุตของ find สำหรับคำสั่งได้อย่างไร?

คำตอบ:


6

หากjarsignerใช้ชื่อไฟล์ครั้งละหนึ่งชื่อเท่านั้นให้ใช้อย่างใดอย่างหนึ่ง

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

หรือ

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

ใช่ xargs ทำให้ทุกอย่างอ่านง่ายขึ้น! อย่างไรก็ตามชายคนนั้นบอกว่าตัวเลือก '-l' ถูกคัดค้าน: '-L 1' ควรทำเช่นเดียวกัน
cYrus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.