现有一个 Linux ,安装有 minio ,存储在 XFS 文件系统下。我现在想找到某个 minio 存储路径下的若干子文件里最大的是哪几个文件?
文件总数未知,单个文件大小约为 1M~10M 级,初步估算的文件数量约为百万到千万级个。
find 后 sort 排序是基本不可能的了,我该怎么操作?
举报· 84 次点击
登录 注册 站外分享
11 条回复  
devopsdogdog 小成 2024-9-4 11:34:38
😂你就不能记录下来然后再去排序,或者多次分割后取数?
hello2090 小成 2024-9-4 11:43:21
TopK 优先级队列 线性复杂度
GeekGao 小成 2024-9-4 11:45:03
使用 Python 的 os.walk() 函数和 yield 生成器递归遍历吧,写个简易统计程序。
ArmsZ 小成 2024-9-4 12:00:44
程序员代码面试指南(第 2 版)值得你一看
NoOneNoBody 小成 2024-9-4 12:05:36
除非你之前有安装一些记录文件位置的工具(类似 windows eferything ),不然总要实时搜磁盘
如果之前有安装定位工具,且有记录文件信息如字节数等,那参考该工具的手册,这样搜数据库比搜磁盘快

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

用 python 之类的写个程序 top k 就好了
me1onsoda 小成 2024-9-4 16:25:33
能把每个文件大小都记录下来就简单了,搞个大顶堆
doraemonki 小成 2024-9-4 16:56:17
帮你把代码写好了 golang ,https://codecopy.cn/post/ez6qqh
12下一页
返回顶部