如果执行shell命令时出现argument list too long的错误,其原因是需要操作的目标文件过多,比如超过2万个文件。
解决方式就是分批甚至逐个处理目标文件。
1. grep命令
命令行执行:
grep "Java" * -l
如果返回:
zsh: argument list too long: grep
命令改为:
ls | xargs -n 100 grep "Java" -l
说明:-n参数表示每批执行多少条数据。
2. cp命令
命令行执行:
cp -r *.zip ../result/
如果返回:
zsh: argument list too long: cp
命令改为:
find . -name "*.zip" -exec cp {} ../result/ \;
3. rm命令
命令行执行:
rm -f *.zip
如果返回:
zsh: argument list too long: rm
命令改为如下任意一种:
ls *.zip | xargs rm -f
find . -name "*.zip" -exec rm -f {} \;