Necesito crear miniaturas de varios archivos .png y me gustaría hacerlo usando ImageMagicks convert
utilidad. Para buscar recursivamente todos los archivos que no son miniaturas, estoy usando la siguiente llamada (dividida en dos líneas para que sea legible):
find . -type f -name "*.png" -not -name "*thumb.png*"
-exec convert {} -thumbnail 200x200 {}.thumb.png ;`
Pero esto, por supuesto, crearía un archivo llamado a.png.thumb.png
al ejecutarlo en un archivo llamado a.png
. ¿Cómo podría eliminar el .png
? extensión del segundo {}
parámetro pasado para convertir?
Respuesta aceptada:
La forma más sencilla de hacer esto es pasar el {}
a un shell como sh
y haz que el shell lo haga:
find ...
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} ;