今天有遇到一个问题,需要删除某目录下堆积的大量的无用文件。
自信的进入目录,敲打进了
rm -rf *
自信的等待结果的时候,报错了
Error – /bin/rm: Argument list too long !
字面意思是参数列表过长。
原因是内核对命令行参数长度有限制,可以通过
getconf ARG_MAX
来获取,我的结果是2621440。
最终找到的处理办法是
find . -name '*' | xargs rm
xargs的全拼是 eXtended ARGuments),是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
配合管道符使用,能将由管道而来的stdin,经过一定处理后,在传递到正确的(参数)位置上。
有一篇详解的文章 https://www.cnblogs.com/f-ck-need-u/p/5925923.html