调整多个文件的大小并正确重命名

调整多个文件的大小并正确重命名

我遇到了一个命令行问题 - 可能非常简单,但似乎我无法在谷歌中输入正确的单词。

所以我想使用 imagemagick 调整文件夹中所有 *.png 图像的大小 - 这类似于“convert -resize 80% ”,并且我想要“filename”→“small_filename”

所以我尝试了:

for f in *.png ; convert -resize 80% "$f" "small_$f" ; done

但是“意外标记“convert”附近的语法错误——我想你不能只将 imagemagick 命令导入到 bash 中?

如果你能帮忙我将非常高兴。

答案1

您遗漏了do后面的字符串。这是一个略作修改的脚本,但如果您在其中for ...添加 missing 内容,您的版本也会正常运行。do

for f in *.png
  do
  echo "Converting $f."
  convert "$f" -resize 80% "${f/.png/-80%.png}"
done

此处的名称更改工作如下:对于每个$f文本字符串,找到其.png部分并将其更改为-80%.png

相关内容