linux删除百万级的文件夹,Linux下快速删除大量文件/文件夹方法

一、场景描述

假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件, 像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。

二、解决方案

rsync提供了一些跟删除相关的参数

rsync --help | grep delete

--del an alias for --delete-during

--delete delete extraneous files from destination dirs

--delete-before receiver deletes before transfer, not during

--delete-during receiver deletes during the transfer

--delete-delay find deletions during, delete after

--delete-after receiver deletes after transfer, not during

--delete-excluded also delete excluded files from destination dirs

--delete-missing-args delete missing source args from destination

--ignore-errors delete even if there are I/O errors

--max-delete=NUM don't delete more than NUM files

其中--delete-before 接收者在传输之前进行删除操作

可以用来清空目录或文件,如下:

1、先建立一个空目录

mkdir /data/blank

2、用rsync删除目标目录

rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/

这样目标目录很快就被清空了

又假如你有一些特别大的文件要删除,比如nohup.out这样的实时更新的文件,动辄都是几十个G上百G的,

也以用rsync来清空大文件,而且效率比较高

1、创建空文件

touch /data/blank.txt

2、用rsync清空文件

rsync -a --delete-before -progress –stats /root/blank.txt /root/nohup.out

building file list …

1 file to consider

blank.txt

0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)

Number of files: 1

Number of files transferred: 1

Total file size: 0 bytes

Total transferred file size: 0 bytes

Literal data: 0 bytes

Matched data: 0 bytes

File list size: 27

File list generation time: 0.006 seconds

File list transfer time: 0.000 seconds

Total bytes sent: 73

Total bytes received: 31

sent 73 bytes received 31 bytes 208.00 bytes/sec

total size is 0 speedup is 0.00

tips:

当SRC和DEST文件性质不一致时将会报错  当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件  当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录  最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事  最核心的内容是:rsync实际上用的就是替换原理

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值