convert
插入图像时,ImageMagick的默认行为似乎是覆盖任何现有文件。有可能防止这种情况吗?我正在寻找与Wget的--no-clobber
download option类似的东西。我经历了ImageMagick's list of command-line options,最接近的选项是-update
,但这只能检测 input 文件是否已更改。
以下是我要完成的操作的一个示例:第一次运行时,convert input.jpg output.png
生成一个{strong>不存在的output.png
,然后在第二次运行中运行,convert input.jpg output.png
检测到output.png
已经存在,并且不会覆盖它。
答案 0 :(得分:1)
先测试它是否存在,假设bash
:
[ ! -f output.png ] && convert input.png output.png
或者稍微不那么直观,但更短:
[ -f output.png ] || convert input.png output.png
答案 1 :(得分:0)
这样的事情能解决您的问题吗?
它将写入 output.png
但如果文件已经存在,将创建一个带有随机 5 个字符后缀的新文件(例如,output-CKYnY.png
然后是 output-hSYZC.png
等)。< /p>
convert input.jpg -resize 50% $(if test -f output.png; then echo "output-$(head -c5 /dev/urandom | base64 | tr -dc 'A-Za-z0-9' | head -c5).png"; else echo "output.png"; fi)