我在一个目录中有 3 个文件:
aaa.jpg
bbb.jpg
ccc.jpg
我可以使用 ImagkMagick convert 缩小图像:
convert aaa.jpg -resize 1200x900 aaa-small.jpg
我想做目录中的所有图像,例如:
convert *.jpg -resize 1200x900 *-small.jpg
但这会导致文件命名如下:
*-small-0.jpg
*-small-1.jpg
*-small-2.jpg
我想要的是:
aaa-small.jpg
bbb-small.jpg
ccc-small.jpg
我该怎么做呢?
它在文档中令人沮丧地不透明,但是您可以将带引号的shell glob 传递给
convert
(带引号以防止 shell 过早扩展它),并使用Filename Percent Escapes以格式构造输出文件名%[filename:label]
(其中label
是任意用户指定的标签) ,使用输入基本名称转义%[basename]
或其旧版等效项%t
:然后
导致
在 for 循环中,可以使用
man bash
at 中描述的功能以下单线应该可以完成这项工作
这适用于
bash
Ubuntu 的标准 shell。convert
我认为它比 Steeldriver 的优雅方法(只使用而不使用for
构造)更容易记住。