在批处理脚本中使用查找时出现奇怪的错误

Strange errror while using find in batch script

我正在尝试使用这段代码递归地调整文件夹内 jpg 文件的大小,使其大于 1 MB。

find . -type f -size +1M -name "*.jpg" | xargs convert -resize 1000x1000\> -verbose

获取错误消息(在 15-20 次迭代后中断批处理)

xargs: convert: terminated by signal 9

如何解决这个问题?

根据我的经验,xargs 并非在所有情况下都能正常工作,只是作为一个建议,如果您需要快速解决问题,请尝试使用 -exec

find . -type f -size +1M -name "*.jpg" -exec convert {} -resize 1000x1000\> -verbose {} \;

看看对你有没有帮助

如果文件名中有空格,xargs 将无法正常工作。为了让它有机会工作,您应该使用以下语法:

find . -type f -size +1M -name "*.jpg" -print0 | xargs -0 convert -resize 1000x1000\> -verbose

这将插入空字符作为分隔符,而不是使用空格作为分隔符。