linux c如何创建一个大文件_Linux如何删除包含千万个文件的大目录

测试目录:/home/test

模拟写入3000万个空文件:

echo test{01..30000000} | xargs touch

结果把inode都给占满了:

beaaf6fe34fc45157fe5efd940bb2368.png

耗时8分钟,就只创建了2200多万个空文件:

3a85b74d07182fdf21d96938128ed54f.png

接下来先说错误的删除方法

rm -rf *.*

6be8020c0be3c04e27cbc1c445ae9b65.png

可以看到压根就没删掉

ls | xargs rm -rf

72ee54693bf15b724774a74dd0f7d293.png

提示内存已被耗尽

正确的删除方式:

1.直接删除父目录(速度:很慢)

[root@localhost home]# rm -rf test/

e7c97ba93fbd5fa2c1412a8adf2594c4.png

耗时39分钟

2.使用find命令配合 -delete 选项(速度:最慢!)

b7243fb7462c85fec45a87d11fe342af.png

由于是空文件,这里使用-empty选项,实际应用场景应该使用-size 选项来指定文件大小进行删除

最快最推荐的方法(速度:极快):

创建一个空文件夹,使用rsync -a --delete选项,将空文件夹内容与目标文件夹进行同步

8ad0c3117663634b1909c9cb571f10e6.png

总结

rsync是最快的方法,当然如果会使用Perl的话,还可以更快,但是并不是所有人都会,所以介绍一个最容易上手的方法。

学妹本不想介绍rm 和 find 这两种方法(即慢又不实用),但是为了严谨的告诉大家rsync比较好,所以就都贴上测试图片啦。

希望大家能喜欢学妹的技术分享,转发分享给更多人叭!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值