Linux删除文件不同方法效率对比
测试一下Linux下面删除大量文件的效率。
首先建立50万个文件
$testforiin$(seq1500000);doechotext>>$i.txt;done
1.rm删除
$timerm-f*
zsh:sureyouwanttodeleteallthefilesin/home/hungerr/test[yn]?y
zsh:argumentlisttoolong:rm
rm-f*3.63suser0.29ssystem98%cpu3.985total
由于文件数量过多,rm不起作用。
2.find删除
$timefind./-typef-execrm{}\;
find./-typef-execrm{}\;49.86suser1032.13ssystem41%cpu43:19.17total
大概43分钟,我的电脑。。。。。。边看视频边删的。
3.findwithdelete
$timefind./-typef-delete
find./-typef-delete0.43suser11.21ssystem2%cpu9:13.38total
用时9分钟。
4.rsync删除
#首先建立空文件夹blanktest
$timersync-a--deleteblanktest/test/
rsync-a--deleteblanktest/test/0.59suser7.86ssystem51%cpu16.418total16s
很好很强大。
5.Python删除
importos importtimeit defmain(): forpathname,dirnames,filenamesinos.walk('/home/username/test'): forfilenameinfilenames: file=os.path.join(pathname,filename) os.remove(file) if__name__=='__main__': t=timeit.Timer('main()','from__main__importmain') printt.timeit(1) 1 2 $pythontest.py529.309022903
大概用时9分钟。
6.Perl删除
$timeperl-e'for(<*>){((stat)[9]<(unlink))}'
perl-e'for(<*>){((stat)[9]<(unlink))}'1.28suser7.23ssystem50%cpu16.784total16s
这个应该最快了。
7、结果:
- rm:文件数量太多,不可用
- findwith-exec50万文件耗时43分钟
- findwith-delete9分钟
- Perl16sPython9分钟
- rsyncwith-delete16s
结论:删除大量小文件rsync最快,最方便。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。