本文最后更新于 2022-07-20【646 天前】,文中所描述的信息可能已发生改变,请谨慎使用。如有问题或建议,欢迎在文章底部留言参与讨论!

要在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是要删除的文件的所在目录。
  • SRCDEST文件性质不一致时将会报错
  • SRCDEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
  • SRCDEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录

可能遇到的问题

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

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

参考

文章目录


推荐使用:阿里云 云翼计划学生优惠、ECS、轻量应用等产品与服务【 点击注册

本文作者:Quanyin Tang

本文链接:Linux下使用rsync最快速删除大量文件 - https://www.imtqy.com/linux-rsync-delete-files.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Quanyin 所有,未经允许禁止转载,经授权转载请注明出处!