我有很多图像需要用pngquant来处理。它们被组织在一个相当深的目录结构中,所以手动cd到每个目录并运行pngquant -ext .png -force 256 *.png非常耗时
有没有一种方法可以让这个命令在当前目录中每个目录中的每个*.png上运行,以及所需的层数?
发布于 2012-03-11 02:55:31
如果你的目录深度有限,文件也不多,那么懒惰的解决方案是:
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用于包含大量小图像的文件夹,以便在进程启动时进行保存)。
发布于 2014-04-22 05:34:43
使用fish shell,您可以从项目目录的根目录运行以下命令
pngquant **.png这将生成扩展名为-or8.png或-fs8.png的新文件。
如果要覆盖现有文件,可以使用
pngquant **.png --ext .png --forcehttps://stackoverflow.com/questions/9647920
复制相似问题