2011-6
17
昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件。这个是之前的程序写的日志,增长很快,而且没什么用。这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsync来实现快速删除大量文件。
1、先安装rsync:
yum install rsync
2、建立一个空的文件夹:
mkdir /tmp/test
3、用rsync删除目标目录:
rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/
这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态
不错,学习了!!
呵呵,我也是需要删除20G的零散日志文件才发现这个方法才最快。之前程序员写的程序很烂,留下个烂摊子~~
看来rm 命令还是 一如既往的垃圾~~
不能这么说的~~
这个方法NB
原理是什么?
rm跟rsync替换为啥差了这么多
经测试,rm与rsync在删除单个大文件(4G左右)的速度差不多,没有快到哪里去,请楼主发出详细的测试报告再发帖吧,不要误导大家。
同意“小笨蛋呀”
几十万个小文件,你测试下就知道了。
速度根本不会比rm快。
博主自己没测试过吧.
替换是什么意思呢
删除大量文件效果非常明显 单个确实是没用了
经测试,rm与rsync在删除单个大文件(4G左右)的速度差不多,没有快到哪里去,请楼主发出详细的测试报告再发帖吧,不要误导大家。
—–
这个方法是用于删除非常多的小文件速度快,不是拿来比单文件。