我使用这个命令:
find . \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 | xargs -0 -n 1 -P 4 jpegoptim --max=70 -s
但它在某些图像上失败(jpegoptim接收SEGFAULT)并崩溃xargs,并且所有进程都失败。
如何跳过失败,继续执行任务?
感谢
答案 0 :(得分:0)
您可以将其包装在scriptlet中,例如:
find . \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 | \
xargs -I@ -0 -n 1 -P 4 sh -c 'jpegoptim --max=70 -s "@" || exit 0'
,请注意,上面不会处理一些有趣的命名文件(例如,其中包含"
)。
[更新:已根据评论sh -c '...'
修复]