如果执行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 {} \;
当在Shell中执行命令如grep、cp或rm时,如果文件数量过大可能会遇到argumentlisttoolong错误。解决方法是使用xargs或find命令分批处理。例如,用ls和xargs-n100配合grep,或者find结合-exec来代替直接的命令行调用,避免一次性传递过多参数。
2028

被折叠的 条评论
为什么被折叠?



