Пакетный запуск mogrify, включая подкаталоги

13

Команда mogrify -format jpg *.NEFпри запуске в каталоге преобразует все файлы * .NEF в JPEG. Я хочу иметь возможность запускать mogrify в файлах * .NEF внутри подкаталогов, а также с помощью одной команды. Я пытаюсь запустить что-то вроде:

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

и конечно это не работает. Может кто-то предложить правильную команду?

Регми
источник

Ответы:

16

Похоже, что 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