http://www.javayou.com (收藏,设为首页)
当你不能再拥有时,你唯一能做的,就是让自己不要忘记 (手机请访问 http://3g.dlog.cn/javayou)

Linux下如何删除某个目录下大量的文件

2006年12月11日(Monday) 16点15分 作者: 刘冬 天气: 心情: 一般

不管是哪个操作系统,同一级目录存在太多的文件都是一件可怕的事情,不管是读取还是删除的时候。

一旦这种不幸的事情发生在你身上,而又不能完全把整个目录删掉怎么办呢?

你可以用 rm -f *.log 但是你马上就会收到一个出错信息:参数列表太长

一个小时以前我一直还是缩小通用匹配符的范围,例如我依次的执行

rm -f a*.log
rm -f b*.log

......

非常费劲,如果这样还不行可以还要继续细化通配符,这样要删除所有log文件可能需要一整天时间。

废话那么多,其实只需要一个命令就可以搞定

ls *.log | xargs rm -f

刚把一个包含几万个文件的目录干掉(/var/log/samba),试试看!

===== 2007-1-26 ======

今天发现这种方法还是无法对付文件数超过十万的目录。

标签: Linux 操作系统 
评论者: jungle 2006-12-15 13:48 (Friday)

如果是一个超过2000w文件的文件夹呢?嘿嘿

评论者: 218.204.243.* 2006-12-28 20:04 (Thursday)
不错..正要用上了,
评论者: 红薯二代 2007-1-1 17:26 (Monday)
如果有超过2000w文件的文件夹,那先把设计这个文件夹的人绞刑伺候,然后把整个硬盘格式化了。
评论者: 小粒子 2007-7-7 16:47 (Saturday)

很有用,我这几天一直在删一个有上千个子文件夹的目录,这个方法正好用上

评论者: www 2008-7-4 10:13 (Friday)

不能用;

ls amavis-20080703* |xargs rm -f
-bash: /bin/ls: Argument list too long

***********

ls amavis-20080703* |xargs rm -rf
-bash: /bin/ls: Argument list too long

姓名: 
邮箱:  {可选}
网址:  {可选} 此评论只有我和写日记的人查阅
校验码: ... <我看不清楚>
网记为您提供手机和互联网同步的个人主页,带给你不一样的体验