我想使用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/