使用 SIPS 调整一长串 JPG 文件的大小



我的文件夹中有 10,000 张图片。我正在尝试将它们的大小调整为 128 x 128。

sips -Z 128 *.jpg

给了我这个错误:

-bash:/usr/bin/sips: 参数列表太长

如何解决此问题?

假设您在要处理的文件夹中...

find ./ -name "*jpg" -exec sips -Z 128 {} ;

应该工作,并且一个接一个地处理它们,而不是一个大的参数列表。

您可以尝试在单个简单的 for 循环中执行任务:

for file in *.jpg; do
sips -Z 128 "$file"
done;

单行脚本:

for file in *.jpg; do sips -Z 128 "$file"; done;

按照其他答案的建议分小批量进行。

这是第三种选择,与其他替代方法不同,它允许您并行化任务。此示例一次最多运行 4 个并行批处理,批处理大小为 100:

find . -name '*.jpg' -print0 | xargs -0 -n 100 -P 4 sips -Z 128

如果您有快速驱动器和更多内核,则可以增加 CPU-P计数。如果您有较大的图像并且想要更细粒度的批次,则可以减少-n批次计数。

相关内容

最新更新