rsync是一款同步工具我之前只把它用来做数据同步操作没想过用来做文件删除操作,不过今天看到一篇文章可以实现文件删除操作,下面我们就一起来看看吧.
使用rsync同步一个空目录即可,对于万级文件的目录基本是秒删,回车就OK.
步骤如下:
1、建立一个空目录:mkdir -p /tmp/rsync_blank
2、确立需要清空的目标目录:/data/ooxx
3、使用rsync同步删除(注意目录后面的“/”),整体效率会快一个数量级的样子.
- rsync–delete-before-a-H-v–progress–stats/tmp/rsync_blank//data/ooxx/
选项说明:
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
-stats 给出某些文件的传输状态
一般我们不需要显示进度,使用以下命令即可:
rsync –delete-before -a -H /tmp/rsync_blank/ /data/ooxx/
这样我们要删除的 cache目录就会被清空了.
tips:
当SRC和DEST文件性质不一致时将会报错.
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件.
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录.
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事.
最核心的内容是:rsync实际上用的就是替换原理.