zoukankan      html  css  js  c++  java
  • 快速删除大量小文件

    由于bash会展开例如 rm aa/* 这样的命令 如果后面的文件太多就会报参数太长, 所以有时候删除大量小文件就不适合用rm了
    可以使用find先查找在删除 就不会出现上面那种报错问题, 可是还有一个问题文件太多的话 -exec rm {} ; 完全没有效率, 一两个小时估计也就只能删除几十万的文件
    对于需要删除百万为单位的文件数来说 这就等于蜗牛爬
    搜索后发现 可以使用另一个find的参数 -delete 网上有人开玩笑说这个比-exec 快1000倍
    虽然这个有些夸张了 但是快10-100倍还是有的 删除200W的文件 大概需要40几分钟

    网上还有一个方案, (个人觉得不太适合)
    建立一个空目录, 利用rsync同步这个空目录到需要删除的目录, 这样就可以删除掉目录下的文件, 感觉这样的操作和直接rm -rf /path 效果差不多
    只是后者把目录删了, 前者是否会改变文件存储的inode号待测试.

    这里的需求主要是只删除文件夹内部分文件, 而不是清空文件夹/删除文件夹

    推荐的命令 find /path/to/delete -type f -name "test-log*" -mtime +10 -delete

    先推荐一本书: <<unix痛恨者手册>>
    这本书内容不多 几个小时就可以看完, 里面介绍的有些内容现在已经处理过了, 还是可以推荐看下
    另外一本 大教堂与小集市 也可以推荐看下

  • 相关阅读:
    JAVA与.NET的相互调用——通过Web服务实现相互调用
    WCF大数据量传输配置
    WCF大数据量传输解决方案
    C# #if DEBUG
    我对CSS vertical-align的一些理解与认识(一)
    htmlparser使用例子(全) 转载
    【HtmlParser】HtmlParser使用
    HTMLParser 使用详解
    htmlparser源码简单分析
    利用OpenXml生成Word2007文档
  • 原文地址:https://www.cnblogs.com/mikeguan/p/7044826.html
Copyright © 2011-2022 走看看