Linux下使用rsync最快速删除大量文件的方法

来源:互联网 发布:华为软件开发工程师 编辑:程序博客网 时间:2024/05/21 18:14

要在Linux下删除海量文件的情况,需要删除三层哈希目录下的几十万个文件。这个时候,删除命令rm -rf * 就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsync来实现快速删除大量文件。

安装步骤:

1、先安装rsync:

yum install rsync

2、建立一个空的文件夹:

mkdir /tmp/test

3、用rsync删除目标目录:

rsync --delete-before --force -r /tmp/test /cache

这样我们要删除的cache目录就会被清空了,删除的速度会非常快。

选项说明:
--delete-before 接收者在传输之前进行删除操作
-r                        recurse into directories

注意:
/tmp/test是我们提前建立的文件夹,后面的/nginx_cache是我们要删除的文件的所在目录。
当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
 

可能遇到的问题:

rsync 'cannot delete non-empty directory' errors, even with --force option

cannot delete non-empty directory 错误在同步source side的时候,你希望执行 rsync --delete. Rsync 不会让你删除不包含在同步目录内的文件。添加 --delete-excluded 选项即可解决。

参考:http://serverfault.com/questions/573392/rsync-cannot-delete-non-empty-directory-errors-even-with-force-option



0 0
原创粉丝点击