Argument list too long

来源:互联网 发布:windows访问smb无权限 编辑:程序博客网 时间:2024/04/29 01:54

mail:/new# rm *
-bash: /bin/rm: Argument list too long

Linux 系统中当单个目录中文件数过多时,试图用 rm * 来删除所有文件会报错 /bin/rm: Argument list too long. 

据说这是因为 Linux 内核中所有 exec 系函数(execl, execlp, execle 等)最终调用的都是 execve() , 而 execve 是通过一块 128k 的内存空间来保存用以传递给新进程的命令参数和环境变量。当像 rm 这些命令产生的命令行参数超过 128k 的时候, Linux kernel 就报 E2BIG 错误了。

解決辦法:


 ls | xargs rm 

ls | xargs rm -f 就能全部删除了