网站首页 > 技术教程 正文
Linux 下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、find with delete、rsync、Python、Perl.
首先建立50万个文件
$ test   for i in $(seq 1 500000);do echo text >>$i.txt;done- rm 删除
$ time rm -f *
zsh: sure you want to delete all the files in /home/hungerr/test [yn]? y
zsh: argument list too long: rm
rm -f *  3.63s user 0.29s system 98% cpu 3.985 total
# 由于文件数量过多,rm不起作用。- find 删除
 $ time find ./ -type f -exec rm {} \;
 find ./ -type f -exec rm {} \;  49.86s user 1032.13s system 41% cpu 43:19.17 total#
 # 大概43分钟,我的电脑。。。。。。边看视频边删的。- find with delete
$ time find ./ -type f -delete
find ./ -type f -delete  0.43s user 11.21s system 2% cpu 9:13.38 total
# 用时9分钟。- rsync 删除
# 首先建立空文件夹blanktest
$ time rsync -a --delete blanktest/ test/
rsync -a --delete blanktest/ test/  0.59s user 7.86s system 51% cpu 16.418 total16s,很好很强大。- Python 删除
import os
import timeit
def main():    for pathname,dirnames,filenames in os.walk('/home/username/test'):        for filename in filenames:            
		file=os.path.join(pathname,filename)            
		os.remove(file)            
if __name__=='__main__':
t=timeit.Timer('main()','from __main__ import main')
print t.timeit(1)  
$ python test.py
529.309022903
# 大概用时9分钟。- Perl 删除
$ time perl -e 'for(<*>){((stat)[9]<(unlink))}'
perl -e 'for(<*>){((stat)[9]<(unlink))}'  1.28s user 7.23s system 50% cpu 16.784 total16s,这个应该最快了。测试结果
- rm:文件数量太多,不可用
- find with -exec 50万文件耗时43分钟
- find with -delete 9分钟
- Perl 16sPython 9分钟
- rsync with -delete 16s
结论:删除大量小文件rsync最快,最方便
- 上一篇: Linux下文件读写函数的使用以及读写模式说明(w+)
- 下一篇: Linux常用文件操作命令
猜你喜欢
- 2025-08-05 Linux系统学习系列——Linux系统日志管理(下 )
- 2025-08-05 Linux版Steam游戏数量已超1800款 但缺大作使用率偏低
- 2025-08-05 Linux系统中iostat监控磁盘
- 2025-08-05 linux基础命令之stat命令
- 2025-08-05 连你家电器的算力都不放过,新发现Linux恶意软件用IoT设备挖矿
- 2025-08-05 深入追踪 Linux 系统调用的利器
- 2025-08-05 Linux文件操作高频使用命令
- 2025-08-05 【Linux系统编程】Linux文件操作
- 2025-08-05 每天Linux学习:linux文件属性
- 2025-08-05 linux下lsof命令快速定位生产问题
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
- 
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
 
- 标签列表
- 
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
 

本文暂时没有评论,来添加一个吧(●'◡'●)