[求助] 在百万到千万级个文件中查找最大的几个。

105 天前
 huangsijun17

现有一个 Linux ,安装有 minio ,存储在 XFS 文件系统下。我现在想找到某个 minio 存储路径下的若干子文件里最大的是哪几个文件? 文件总数未知,单个文件大小约为 1M~10M 级,初步估算的文件数量约为百万到千万级个。 find 后 sort 排序是基本不可能的了,我该怎么操作?

2090 次点击
所在节点    Linux
12 条回复
devopsdogdog
105 天前
😂你就不能记录下来然后再去排序,或者多次分割后取数?
hello2090
105 天前
TopK 优先级队列 线性复杂度
GeekGao
105 天前
使用 Python 的 os.walk() 函数和 yield 生成器递归遍历吧,写个简易统计程序。
ArmsZ
105 天前
程序员代码面试指南(第 2 版)值得你一看
NoOneNoBody
105 天前
除非你之前有安装一些记录文件位置的工具(类似 windows everything ),不然总要实时搜磁盘
如果之前有安装定位工具,且有记录文件信息如字节数等,那参考该工具的手册,这样搜数据库比搜磁盘快

python pandas 排序应该也很快,因为只有路径和字节数两个字段,只是前面递归获取全部路径比较慢
总的来说,瓶颈在于是实时搜磁盘,还是从定位工具搜数据库
MoYi123
105 天前
find + sort 为什么不行, 这不是最简单的办法吗?
ZZ74
105 天前
@MoYi123 文件数量太多了。

用 python 之类的写个程序 top k 就好了
me1onsoda
105 天前
能把每个文件大小都记录下来就简单了,搞个大顶堆
doraemonki
105 天前
帮你把代码写好了 golang ,https://codecopy.cn/post/ez6qqh
sn0wdr1am
98 天前
记录到数据库,查询数据库。
kokerkov
98 天前
有 GUI 吗? filelight
webs
97 天前
你 find 时,带个文件最小大小的参数,数据量不就小很多了嘛,再 sort 一下,整个过程也就耗时 6s 以内,
https://infras.cn

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX