【发布时间】:2014-07-17 12:46:39
【问题描述】:
我是一个目录,我有几个文件名,例如 13992.jpg 13993.jpg 13994.jpg 13995.jpg ...
如何使用 convert 重命名这些文件? 我试过了
convert -thumbnail 62 %d.jpg[11000-19000] $d_thumb.jpg
但它不起作用... 有什么建议吗?
【问题讨论】:
标签: linux bash imagemagick
我是一个目录,我有几个文件名,例如 13992.jpg 13993.jpg 13994.jpg 13995.jpg ...
如何使用 convert 重命名这些文件? 我试过了
convert -thumbnail 62 %d.jpg[11000-19000] $d_thumb.jpg
但它不起作用... 有什么建议吗?
【问题讨论】:
标签: linux bash imagemagick
你可以使用:
convert -thumbnail 62 -set filename:f '%d/%t' %d.jpg[11000-19000] %[filename:f]_thumb.jpg
诀窍是使用自定义属性filename:f 来存储输入文件名,路径为%d/,不带扩展名%t。该属性用于创建输出文件名。
参考:
https://imagemagick.org/script/command-line-options.php#set https://imagemagick.org/script/escape.php
【讨论】:
你可能想循环运行转换,比如
for pic in *.jpg; do
echo convert "$options" "$pic" "${pic%.*}.thumb.jpg"
done
考虑一下这个重命名的小“技巧”:
pic=foo123 # file name stripped of extension
echo "convert options..." $pic{,.thumb}.jpg
【讨论】:
你可以拥有
for IMG in 1[1-8]???.jpg 19000.jpg; do
echo convert -thumbnail 62 "$IMG" "${IMG%.jpg}_thumb.jpg"
done
如果已经正确,请删除echo。
【讨论】: