网站首页 > 技术教程 正文
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命令快速定位生产问题
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)