Mogrify de execução em lote, incluindo subdiretórios

13

O comando, mogrify -format jpg *.NEFquando executado em um diretório, converte todos os arquivos * .NEF em JPEGs. O que eu quero fazer é poder executar o mogrify em arquivos * .NEF dentro de subdiretórios, usando também um comando. Estou tentando executar algo como:

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

e é claro que não está funcionando. Alguém pode sugerir o comando adequado?

Regmi
fonte

Respostas:

16

Parece que o mogrify do ImageMagick 6.9.9.19 grava o resultado no mesmo diretório que o arquivo de entrada, para que você possa usar este comando:

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

Explicação:

  • -name '*.NEF'localiza todos os arquivos * .NEF ; use -inamese você deseja que a pesquisa não diferencie maiúsculas de minúsculas.

  • -exec ... {} +executa o comando em todos os arquivos correspondentes. Uma alternativa seria combinar find com xargs .

Cristian Ciupitu
fonte
Apenas uma dica, talvez você queira expandir um pouco isso, pois foi marcado como de baixa qualidade. Considere explicar o que o comando faz em detalhes.
Trabalhando perfeito. Eu uso isso para converter svg para png com: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín