我需要从多个 .png 文件创建缩略图,并希望使用 ImageMagicksconvert
实用程序来执行此操作。为了递归地查找本身不是缩略图的所有文件,我使用以下调用(分成两行以使其可读):
find . -type f -name "*.png" -not -name "*thumb.png*" \
-exec convert {} -thumbnail 200x200 {}.thumb.png \;`
a.png.thumb.png
但是,当在名为 的文件上运行它时,这当然会创建一个名为 的文件a.png
。如何从传递给转换的.png
第二个{}
参数中删除扩展名?
答案1
最简单的方法是将其传递{}
给 shell sh
,然后让 shell 执行此操作:
find ... \
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;