每天都在进步一点点,在这里我将记下我的点点滴滴,希望和大家一起进步,一起学习,一起共同成长PHPer之路! PHPer成长群(49052575)欢迎各界精英加入,互相学习,互补不足。 空间不再更新:如有需要请进 http://www.phpcake.cn

删除目录下所有文件超强

上一篇 / 下一篇  2007-12-03 17:29:07 / 个人分类:linux删除所有文件

Made In Zeal 转载请保留原始链接:http://www.zeali.net/entry/529

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

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

解决方法是用find命令先找出希望删除的文件名再用管道批次传递给rm去删除。比如要删除sendmail堆积起来的mqueue目录下的文件:

find /var/spool/mqueue/ -type f -name '*' -print0 | xargs -0 rm

(-0 参数防止文件名中有空格导致被 rm 认作是两个不同的文件。)


TAG: linux shell error rm linux删除所有文件

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 17386
  • 日志数: 69
  • 建立时间: 2007-05-14
  • 更新时间: 2008-04-11

RSS订阅

Open Toolbar