linux下关于删除大量文件的比对

因为在做存储相关的工作,有时候使用vdbench需要写入大量的数据,测试完毕或者测试目的就是删除大量的数据,虽然是测试存储的性能和稳定性。但是不同的删除办法也是不一样的,下面写一些,所接触到的办法

条件:

Linux上删除大量文件几种方式对比

linux上删除大量小文件删除测试:删除500000个小文件测试
生成文件:

$ for i in $(seq 500000);do echo 'text' >hello/$i.txt;done
$ du -sh hello
2.0G    hello

 

1.使用rm直接删除,文件太多,很多时候回报错,或者卡死,等待很久

$ time rm -f *
-bash: /usr/bin/rm: Argument list too long

real    0m2.676s
user    0m2.340s
sys 0m0.272s

2.find查找删除:-exec

-exec: 该参数是将查找的结果文件名,逐个传递给后面的命令执行,如果文件较多,会导致效率较低。
xargs: 该命令是将查找的结果一次性传给后面的命令执行,效率比较高。但是不能操作文件名有特殊字符的文件。

$ time find . -type f -exec rm {} \;

real    7m16.154s
user    0m51.171s
sys 5m51.214s

3.find查找删除:xargs

$ time find . -type f|xargs rm -rf

real    0m17.860s
user    0m1.021s
sys 0m8.838s

4.find调用-delete删除

$ time find . -type f -delete

real    0m16.953s
user    0m0.535s
sys 0m8.866s

$ time find . -type f -delete

real    0m16.221s
user    0m0.578s
sys 0m8.098s

5.ls和xargs组合删除

$ time ls|xargs -L 10000 rm -f

real    0m13.764s
user    0m2.856s
sys 0m8.630s

$ time ls|xargs -L 5000 rm -f

real    0m13.879s
user    0m3.053s
sys 0m8.622s

6.rsync delete删除

$ mkdir blank # 建立空文件夹
$ time rsync -a --delete blank/ hello/

real    0m15.293s
user    0m0.590s
sys 0m12.397s

$ time rsync -a --delete blank/ hello/

real    0m14.833s
user    0m0.590s
sys 0m11.977s

$ time rsync -a --delete-before blank/ hello/

real    0m14.884s
user    0m0.602s
sys 0m12.147s

$ time rsync -a --delete-during blank/ hello/

real    0m15.468s
user    0m0.693s
sys 0m12.441s

$ time rsync -a --delete-after blank/ hello/

real    0m15.135s
user    0m0.600s
sys 0m12.253s

总结:

命令时间备注
rm无法删除...
find + -exec7m16s耗费时间太长
find + xargs17s时间较短
find + delete16s时间较短
ls + xargs13s时间短
rsync + delete15s时间短
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值