Exécution par lots de Mogrify avec sous-répertoires

13

La commande, mogrify -format jpg *.NEFlorsqu'elle est exécutée dans un répertoire, convertit tous les fichiers * .NEF en JPEG. Ce que je veux faire, c'est de pouvoir exécuter mogrify dans les fichiers * .NEF à l'intérieur des sous-répertoires en utilisant une seule commande. J'essaie d'exécuter quelque chose comme:

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

et bien sûr, cela ne fonctionne pas. Quelqu'un peut-il suggérer la commande appropriée?

Regmi
la source

Réponses:

16

Il ressemble à mogrify d'ImageMagick 6.9.9.19 écrit le résultat dans le même répertoire que le fichier d'entrée, vous pouvez donc utiliser cette commande:

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

Explication:

  • -name '*.NEF'trouve tous les fichiers * .NEF ; à utiliser -inamesi vous souhaitez que la recherche soit insensible à la casse.

  • -exec ... {} +exécute la commande sur tous les fichiers correspondants. Une alternative serait de combiner find avec xargs .

Cristian Ciupitu
la source
Juste un conseil, vous voudrez peut-être développer un peu cela, car il était marqué comme de faible qualité. Pensez à expliquer en détail ce que fait la commande.
Fonctionne parfaitement. Je l'utilise pour convertir svg en png avec: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín