我有很多想用pngquant处理的图像。他们是在一个漂亮的深目录结构进行组织,所以它是非常耗时的手动cd
到到每一个目录,然后运行pngquant -ext .png -force 256 *.png
用pngquant递归批处理文件
有没有办法让这个命令在每个*在内的每个目录运行巴纽目前的一个,尽可能多的层深?
我有很多想用pngquant处理的图像。他们是在一个漂亮的深目录结构进行组织,所以它是非常耗时的手动cd
到到每一个目录,然后运行pngquant -ext .png -force 256 *.png
用pngquant递归批处理文件
有没有办法让这个命令在每个*在内的每个目录运行巴纽目前的一个,尽可能多的层深?
如果你有目录的深度有限,并没有太多的文件,那么懒惰的解决方案:
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
用于具有大量小图像的文件夹以节省进程启动时间)。
随着fish shell可以运行在你的项目目录
pngquant **.png
的根将产生与像-or8.png
或-fs8.png
扩展新文件以下。
如果要覆盖现有文件,可以使用
pngquant **.png --ext .png --force
什么操作系统是你吗? – Manish 2012-03-10 19:30:47