要在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】时,意思是删除该目录下的所有文件,使其变为空目录

可能遇到的问题:

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐