Linux批处理转换:使用convert更改jpg的质量,但保留其名称

Linux批处理转换:使用convert更改jpg的质量,但保留其名称,linux,imagemagick,Linux,Imagemagick,如果我用 convert -quality 80% *.jpg 它可以工作,但软件会将文件名更改为它选择的第一个文件名。如何保留名称,甚至用质量较低的图像替换以前的图像。请尝试以下方法: mogrify -quality 80% *.jpg 转换命令帮助: 转换输入文件[选项]输出文件 现在使用一个小脚本将所有jpg文件转换为当前目录下原始文件的80%质量 for file in *.jpg; do convert "$file" -quality 80% "$file" done;

如果我用

convert -quality 80% *.jpg
它可以工作,但软件会将文件名更改为它选择的第一个文件名。如何保留名称,甚至用质量较低的图像替换以前的图像。

请尝试以下方法:

mogrify -quality 80% *.jpg
转换命令帮助:

转换输入文件[选项]输出文件

现在使用一个小脚本将所有jpg文件转换为当前目录下原始文件的80%质量

for file in *.jpg; do
  convert "$file" -quality 80% "$file"
done;

这对你有用

convert -quality 80% '*.jpg' -set filename:original %t %[filename:original].jpg

@JimGarrison-听起来像是一个shell脚本问题。从手册页上看:>Mogrify覆盖原始图像文件,而convert(1)写入另一个图像文件。使用
ls
是无用的,因为对于*jpg中的f,它可以缩短为
。而且mogrify可以同时处理多个文件。@Ringbear这不是一个很好的方法。需要另一个进程,但对于带有空格的文件失败。除此之外,这是一个很好的答案。我删除了子进程(backtick),并添加引号以防止错误