使用sips调整一长串jpg文件的大小

时间:2018-05-04 22:40:04

标签: linux sips

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

sips -Z 128 *.jpg

给了我这个错误:

  

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

如何解决此问题?

3 个答案:

答案 0 :(得分:2)

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

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

单行脚本:

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

按照其他答案的建议,以较小批量进行。

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

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

如果您有快速驱动器和更多内核,则可以增加-P CPU数量。如果您有更大的图像并希望获得更精细的批次,则可以减少-n批次计数。