Loading...

解决rm –rf 多文件的问题

2009-03-26 15:54:07 发表于网站技术 本文链接: 解决rm –rf 多文件的问题

在linux下rm -rf表示删除文件不做任何询问,大多数情况下,cosbeta就用rm –rf cache/*来清空bloggermap服务器上大约1G的缓存。

rm -rf对文件大小到无所谓,但是一旦文件数量过多可能就会删除失败,并且做出“argument too lang”之类的提示。出现这样的错误不难理解,因为rm –rf *执行过程是先遍历文件夹下文件名,然后作为参数传递给rm,文件太多(比如刚才cosbeta发现bloggermap cache目录中大约有30w(10G)个文件)肯定就会出现参数太长的提示了。

解决方法:find  ./cache  -name ‘*’ -exec rm {} \; 等到执行完毕之后,再进入cache,执行一个rm –rf *即可。

上面的命令其实是改变了rm的执行顺序:找到一个文件,便执行删除之,所以就不会提示参数过长了。

此命令的来源启示:

paveo: 晕,走得那么快。

0:32 find

find PATH -name *.mp3 -exec rm {} \;

就可以了。

标签:,
发表于 2009-03-26 15:54:07 目录:网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    feed url
    上一篇: « 每周adsense的最佳日
    下一篇: dreamhost的好处 »
    已经有3位大师动手指导 拒绝低俗
    • 1楼 Kaya 在2009.03.26 19:58发表评论如下: 回复

      可以试试另一种方法。
      直接在cache目录下
      ls | xargs rm

      原理是一样的,只不过-exec 是find命令的扩展,而xargs是一个处理此种情况比较通用的方法。
      比如我们还可以写成这样:
      find . | xargs rm

    • 2楼 kid.xiyang 在2009.03.30 15:51发表评论如下: 回复

      ls | xargs -n1 rm -f

      评论分页: 1
      (Required)
      (Required, not published)
      如果留言未显示无需重复留言,我将为你恢复!