Ho bisogno di creare miniature da più file .png e vorrei farlo usando ImageMagicks convert
utilità. Per trovare ricorsivamente tutti i file che non sono miniature stesse, sto usando la seguente chiamata (divisa in due righe per renderlo leggibile):
find . -type f -name "*.png" -not -name "*thumb.png*"
-exec convert {} -thumbnail 200x200 {}.thumb.png ;`
Ma questo ovviamente creerebbe un file chiamato a.png.thumb.png
durante l'esecuzione su un file chiamato a.png
. Come posso rimuovere il .png
estensione dal secondo {}
parametro passato da convertire?
Risposta accettata:
Il modo più semplice per farlo è passare il {}
via a una shell come sh
e fallo fare alla shell:
find ...
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} ;