安基网 首页 系统 Linux 查看内容

Linux如何删除包含千万个文件的大目录

2020-5-14 12:20| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 测试目录:/home/test模拟写入3000万个空文件:echo test{01..30000000} | xargs touch结果把inode都给占满了:耗时8分钟,就只创建了2200多万个空文件:接下来先说错误的删除方法rm -rf *.*可以看到压根就没删掉ls | xargs rm -rf提示内存已被耗尽正确的删除方式:1.直接删除父目录(速度:很慢)# rm - ...

测试目录:/home/test

模拟写入3000万个空文件:

echo test{01..30000000} | xargs touch


结果把inode都给占满了:



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



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

rm -rf *.*

可以看到压根就没删掉

ls | xargs rm -rf


提示内存已被耗尽


正确的删除方式:

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

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


耗时39分钟

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


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


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

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



总结

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

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

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



小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6800878210654405128/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

 最新
返回顶部