首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pngquant递归批处理文件

使用pngquant递归批处理文件
EN

Stack Overflow用户
提问于 2012-03-11 00:11:01
回答 2查看 26.5K关注 0票数 32

我有很多图像需要用pngquant来处理。它们被组织在一个相当深的目录结构中,所以手动cd到每个目录并运行pngquant -ext .png -force 256 *.png非常耗时

有没有一种方法可以让这个命令在当前目录中每个目录中的每个*.png上运行,以及所需的层数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-11 02:55:31

如果你的目录深度有限,文件也不多,那么懒惰的解决方案是:

代码语言:javascript
复制
pngquant *.png */*.png */*/*.png

标准解决方案:

代码语言:javascript
复制
find . -name '*.png' -exec pngquant --ext .png --force 256 {} \;

和多核版本:

代码语言:javascript
复制
find . -name '*.png' -print0 | xargs -0 -P8 -L1 pngquant --ext .png --force 256

其中-P8定义了CPU的数量,-L1定义了一次pngquant调用中要处理的图像的数量(我将-L4用于包含大量小图像的文件夹,以便在进程启动时进行保存)。

票数 71
EN

Stack Overflow用户

发布于 2014-04-22 05:34:43

使用fish shell,您可以从项目目录的根目录运行以下命令

代码语言:javascript
复制
pngquant **.png

这将生成扩展名为-or8.png-fs8.png的新文件。

如果要覆盖现有文件,可以使用

代码语言:javascript
复制
pngquant **.png --ext .png --force
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9647920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档