我使用以下命令:
find . \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 | xargs -0 -n 1 -P 4 jpegoptim --max=70 -s
但是它在某些映像上失败(jpegoptim接收SEGFAULT)并使xargs崩溃,并且所有进程都失败。
如何跳过失败,并继续执行任务?
谢谢
发布于 2018-06-05 22:02:18
您可以将其封装在一个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 '...'
https://stackoverflow.com/questions/50701552
复制相似问题