我想使用pngquant处理很多图像。它们以非常深的目录结构组织,因此手动cd进入每个目录并运行pngquant -ext .png -force 256 *.png非常耗时

有没有一种方法可以使此命令在当前目录中每个目录中的每个* .png上运行,并根据需要进行深入?

最佳答案

如果目录深度有限且文件太多,则可以使用懒惰的解决方案:

pngquant *.png */*.png */*/*.png

标准解决方案:
find . -name '*.png' -exec pngquant --ext .png --force 256 {} \;

和多核版本:
find . -name '*.png' -print0 | xargs -0 -P8 -L1 pngquant --ext .png --force 256

其中-P8定义了CPU数量,而-L1定义了在一个pngquant调用中要处理的图像数量(我将-L4用于具有很多小图像的文件夹,以便在处理开始时保存)。

关于image - 用pngquant递归批处理文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9647920/

10-11 06:50