省略查找扩展名吗?


11

我需要从多个.png文件创建缩略图,并想使用ImageMagicks convert实用程序来做到这一点。为了递归查找所有本身不是缩略图的文件,我使用以下调用(分成两行以使其可读):

find . -type f -name "*.png" -not -name "*thumb.png*" \
  -exec convert {} -thumbnail 200x200 {}.thumb.png \;`

但这当然会在名为的文件上a.png.thumb.png运行时创建一个名为的文件a.png。如何.png{}传递给转换的第二个参数中删除扩展名?

Answers:


14

最简单的方法是将{}off 传递给类似的shell,sh并让该shell执行此操作:

find ... \
    -exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.