Linux下使用rsync最快速删除大量文件
要在Linux下删除海量文件的情况,需要删除三层哈希目录下的几十万个文件。这个时候,删除命令rm -rf *
就不好用了,因为要等待的时间太长。所以必须要采取一些非常手段。我们可以使用rsync
来实现快速删除大量文件。
安装步骤
- 安装rsync
yum install rsync
- 建立一个空的文件夹
mkdir /tmp/test
- 用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 选项即可解决。