帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux下正确快速删除海量文件的方法

Linux下正确快速删除海量文件的方法

2018-08-24 17:10:57 8166

“海量”并不是指体积大,而是指数量,比如一个目录下有数万个小文件。进入这些目录里使用ls命令是愚蠢的做法,而直接执行rm * , 没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的。


那么正确的方法是什么呢?有两种方法可选:


]#find /path/to/directory -type f -exec rm {} \;


]#ls -1 /path/to/directory | xargs -I{} rm {}


上面这两种方法可以成功的删除海量文件,速度也很快。但还有一种更好的方法,比如要删除上面提到的clientmqueue目录,里面全部是一个一个的邮件,用下面的方法:


]#service sendmail stop

]#cd /var/spool

]#mv clientmqueue clientmqueue-todelete

]#mkdir clientmqueue

]#chown --reference=clientmqueue-todelete clientmqueue

]#chmod --reference=clientmqueue-todelete clientmqueue

]#service sendmail start

]#rm -rf clientmqueue-todelete


上面的方法是将目录重命名,然后使用了 --reference 引用参数来重建目录,然后删除重命名的目录。直接删除目录的方法速度是十分的快。也可以留着备份不删。更安全。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: