Lote ejecutar mogrify incluyendo subdirectorios

13

El comando mogrify -format jpg *.NEFcuando se ejecuta en un directorio convierte todos los archivos * .NEF a JPEG. Lo que quiero hacer es poder ejecutar mogrify en archivos * .NEF dentro de subdirectorios también usando un comando. Estoy tratando de ejecutar algo como:

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

y por supuesto no funciona ¿Alguien puede sugerir el comando adecuado?

Regmi
fuente

Respuestas:

16

Parece que mogrify de ImageMagick 6.9.9.19 escribe el resultado en el mismo directorio que el archivo de entrada, por lo que puede usar este comando:

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

Explicación:

  • -name '*.NEF'encuentra todos los archivos * .NEF ; utilícelo -inamesi desea que la búsqueda no distinga entre mayúsculas y minúsculas.

  • -exec ... {} +ejecuta el comando en todos los archivos coincidentes. Una alternativa sería combinar find con xargs .

Cristian Ciupitu
fuente
Solo un consejo, es posible que desee ampliar esto un poco, ya que se marcó como de baja calidad. Considere explicar lo que hace el comando en detalle.
Trabajando perfecto. Lo uso para convertir svg a png con: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín