รุ่นที่เรียกใช้ mogrify รวมถึงไดเรกทอรีย่อย


11

คำสั่งmogrify -format jpg *.NEFเมื่อเรียกใช้ในไดเรกทอรีจะแปลงไฟล์* .NEFทั้งหมดเป็น JPEG สิ่งที่ฉันต้องการทำคือสามารถเรียกใช้ mogrify ในไฟล์* .NEF ภายในไดเรกทอรีย่อยได้เช่นกันโดยใช้คำสั่งเดียว ฉันพยายามเรียกใช้บางสิ่งเช่น:

find . -type d exec mogrify -format jpg *.NEF \;

และแน่นอนมันไม่ทำงาน ใครสามารถแนะนำคำสั่งที่เหมาะสม?

คำตอบ:


14

ดูเหมือนว่า mogrify จาก ImageMagick 6.9.9.19 จะเขียนผลลัพธ์ในไดเรกทอรีเดียวกับไฟล์อินพุตดังนั้นคุณสามารถใช้คำสั่งนี้:

find . -name '*.NEF' -exec mogrify -format jpg {} +

คำอธิบาย:

  • -name '*.NEF'ค้นหาไฟล์* .NEFทั้งหมด ใช้-inameหากคุณต้องการให้การค้นหาเป็นแบบตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

  • -exec ... {} +รันคำสั่งในไฟล์ที่ตรงกันทั้งหมด ทางเลือกที่จะที่จะรวมพบกับxargs


เพียงแค่ปลายเล็กน้อยคุณอาจต้องการขยายในส่วนนี้เล็กน้อยเนื่องจากถูกทำเครื่องหมายว่ามีคุณภาพต่ำ พิจารณาอธิบายสิ่งที่คำสั่งทำโดยละเอียด
โมเสส

ทำงานได้อย่างสมบูรณ์แบบ ฉันใช้สิ่งนี้เพื่อแปลง svg เป็น png ด้วย: "find. -name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.