Batch run mogrify termasuk subdirektori

13

Perintah mogrify -format jpg *.NEFsaat dijalankan dalam direktori mengubah semua file * .NEF ke JPEG. Yang ingin saya lakukan adalah dapat menjalankan mogrify dalam file * .NEF di dalam subdirektori juga menggunakan satu perintah. Saya mencoba menjalankan sesuatu seperti:

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

dan tentu saja itu tidak berfungsi. Adakah yang bisa menyarankan perintah yang tepat?

Regmi
sumber

Jawaban:

16

Sepertinya mogrify dari ImageMagick 6.9.9.19 menulis hasilnya di direktori yang sama dengan file input, sehingga Anda dapat menggunakan perintah ini:

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

Penjelasan:

  • -name '*.NEF'menemukan semua file * .NEF ; gunakan -inamejika Anda ingin pencarian menjadi case-sensitive.

  • -exec ... {} +mengeksekusi perintah pada semua file yang cocok. Alternatifnya adalah menggabungkan find dengan xargs .

Cristian Ciupitu
sumber
Hanya sebuah tip, Anda mungkin ingin sedikit memperluas ini karena ditandai sebagai kualitas rendah. Pertimbangkan untuk menjelaskan apa yang dilakukan perintah secara terperinci.
Bekerja dengan sempurna. Saya menggunakan ini untuk mengonversi svg ke png dengan: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín