我的文件夹中有10,000张图片。我正在尝试将它们调整为128 x 128。
sips -Z 128 *.jpg
给了我这个错误:
-bash:/ usr / bin / sips:参数列表太长
如何解决此问题?
答案 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
批次计数。