Esegui batch in modo mogrify comprese le sottodirectory


13

Il comando mogrify -format jpg *.NEFquando eseguito in una directory converte tutti i file * .NEF in JPEG. Quello che voglio fare è essere in grado di eseguire il mogrify nei file * .NEF all'interno delle sottodirectory usando anche un comando. Sto cercando di eseguire qualcosa del tipo:

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

e ovviamente non funziona. Qualcuno può suggerire il comando corretto?

Risposte:


16

Sembra che mogrify da ImageMagick 6.9.9.19 scriva il risultato nella stessa directory del file di input, quindi puoi usare questo comando:

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

Spiegazione:

  • -name '*.NEF'trova tutti i file * .NEF ; utilizzare -inamese si desidera che la ricerca non faccia distinzione tra maiuscole e minuscole.

  • -exec ... {} +esegue il comando su tutti i file corrispondenti. Un'alternativa sarebbe combinare find con xargs .


Solo un suggerimento, potresti voler espandere un po 'su questo in quanto è stato contrassegnato come di bassa qualità. Considera di spiegare in dettaglio cosa fa il comando.

Funziona perfettamente. Lo uso per convertire svg in png con: "find. -Name '* .svg' -exec mogrify -format jpg {} +"
Indacochea Wachín
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.