0

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

sips -Z 128 *.jpg

给我这个错误:

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

我该如何解决这个问题?

4

3 回答 3

2

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

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

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

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

于 2018-05-04T23:53:58.613 回答
2

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

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

单行脚本:

for file in *.jpg; do sips -Z 128 "$file"; done;
于 2018-05-04T22:44:33.273 回答
2

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

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

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

于 2018-05-04T23:05:38.197 回答