设为首页收藏本站

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1167|回复: 1

Linux下快速删除大量文件/文件夹方法,rm -rf非常缓慢,如何加速

[复制链接]

签到天数: 2208 天

[LV.Master]伴坛终老

 成长值: 20780
发表于 2016/2/3 03:34 | 显示全部楼层 |阅读模式 |Google Chrome 47.0.2526.111|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
当我们在linux系统中要删除数万或者数十万甚至数百万的文件时使用rm -rf *就不太好用,因为要等待很长一段时间。在这种情况之下我们可以使用linux系统命令rsync来巧妙的处理。rsync实际上用的是替换原理,处理数十万个文件也是秒删。

假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件, 像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。

如果你单独用一块数据盘跑,或者进行了分区,那就好办了,直接看这个贴,进行格式化操作,3000W数据用sync删了几个小时还没完,格式化2分钟就能搞定。
http://bbs.itzmx.com/thread-10681-1-1.html


rsync安装,有些系统默认安装有该命令
ubuntu系统:apt-get install rsync
centos 系统:yum install rsync
其他的可以源码安装,到下面的网站下载
http://rsync.samba.org


rsync提供了一些跟删除相关的参数
rsync –help | grep delete
–del an alias for –delete-during
–delete delete files that don’t exist on the sending side
–delete-before receiver deletes before transfer (default)
–delete-during receiver deletes during transfer, not before
–delete-after receiver deletes after transfer, not before
–delete-excluded also delete excluded files on the receiving side
–ignore-errors delete even if there are I/O errors
–max-delete=NUM don’t delete more than NUM files
其中–delete-before 接收者在传输之前进行删除操作
可以用来清空目录或文件,如下:

示例
清空目录或文件,如下:
1、先建立一个空目录
mkdir -p /root/blank
2、用rsync删除目标目录
rsync --delete-before -d -a -H -v --progress --stats /root/blank/ /root/edatacache/
或者
rsync --delete-before -d /root/blank/ /root/edatacache/

这样/root/edatacache目录就被快速的清空了。

选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress          在传输时显示传输过程
-a                       归档模式,表示以递归方式传输文件,并保持所有文件属性
-H                      保持硬连接的文件
-v                       详细输出模式
–stats                给出某些文件的传输状态
-d                      transfer directories without recursing

3、也可以用来删除大文件
假如我们在/root/下有一个几十G甚至上百G的文件data,现在我们要删除它
一、创建一个空文件
    touch /root/empty
二、用rsync清空/root/data文件
    rsync --delete-before -d --progess --stats /root/empty /root/data


注意:
当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事
最核心的内容是:rsync实际上用的就是替换原理

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

签到天数: 71 天

[LV.6]常住居民II

发表于 2016/3/18 14:23 | 显示全部楼层 |Google Chrome 49.0.2623.75|Windows 8.1
技术贴,留名
[发帖际遇]: hhmx 在论坛发帖时没有注意,被小偷偷去了 4 樱币. 幸运榜 / 衰神榜
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 用百度帐号登录新浪微博账号登陆

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2018/1/19 13:44 , Processed in 0.262579 second(s), 39 queries , Gzip On, Apc On.

Powered by itzmx!

© 2011-2013 sakura

快速回复 返回顶部 返回列表