我在文件夹里有一堆图片:
images/image1.jpg
images/image2.jpg
...这些图像没有为网络进行优化。
只是想知道是否有linux命令只需一步就可以批量优化这些映像?
更新:我需要为每一张图片做两件事:
发布于 2018-12-12 22:22:37
如果您有大量文件,并且希望快速完成此操作,您还可以使用并行程序:
sudo apt install imagemagick parallel然后是:
find . \( -name '*.jp*g' -o -name '*.png' \) -a ! -name '*.min.*' -type f -print0 | \
parallel -0 'convert {} -resize '>900x' -quality '70%' \
-set filename:newname "%d/%[basename].min.%[extension]" "%[filename:newname]"'让我们走一走:
find --寻找文件. --在当前目录中\( -name '*.jp*g' -o -name '*.png' \) --或者是png或者jpeg ( "jpg“和"jpeg”都是常见的扩展!)-a ! -name '*.min.*' --跳过已经最小化的文件-type f --并且是实际文件,而不是符号链接或命名奇怪的目录。-print0 -打印这些以空字节分隔的文件(这样空格就不会破坏事物)parallel --从前面的命令中读取,并对每个元素并行执行此命令-0 --每个元素都用空字节分隔。convert {} --调用imagemagick“转换”程序,其文件名替换了{} resize '>900x' -quality '70%' --在x轴上将图像调整到最大900 70,并将jpeg质量更改为70%。确实有多还有其他可能的选择.-set filename:newname "%d/%[basename].min.%[extension]" --创建一个具有新文件名的变量。请参阅所有有效值的文档。。%d --文件所在的目录%[basename] --没有任何扩展名的文件名%[extension] --文件的原始扩展名 - `"%[filename:newname]"` -- the output filename we set up in the previous stephttps://askubuntu.com/questions/641268
复制相似问题