Linux 平台有没有类似 Windows everything 的文件索引工具呢

2022-05-21 00:05:02 +08:00
 gabon

nas 上存放了很多文件,如果需要根据名称模糊搜索某个文件要全盘扫描,慢而且感觉对磁盘不友好。所以 Linux 平台有没有类似工具,如果没有可不可以通过 inotify 或者其它什么 api 等自己写一个工具,不太了解 linux 文件系统

3149 次点击
所在节点    分享创造
12 条回复
liprais
2022-05-21 00:07:18 +08:00
有没有一种可能是跟 ntfs 这种微软专利的文件系统有关系呢
devour
2022-05-21 00:10:55 +08:00
locate?
2NUT
2022-05-21 00:11:44 +08:00
locate 会查找文件名数据库, 好像使用的 树 结构;

不清楚 everything 的原理
weyou
2022-05-21 00:13:04 +08:00
locate 还不够快么
2NUT
2022-05-21 00:31:16 +08:00
Everything 直接扫描 MFT ,这将 Everything 限制为仅 NTFS 卷。

一切都制作了这个 mft 的一个非常简单的副本并将其保存在内存中,使用 USN 更改日志来监视更改。

搜索被编译成字节码并被执行。
reorx
2022-05-21 01:22:11 +08:00
最近 https://www.v2ex.com/t/853610 发布了一个跨平台的文件搜索工具,也支持 Linux
Buges
2022-05-21 03:06:33 +08:00
有一个高仿 everything ,体验接近的 Linux 实现 https://github.com/cboxdoerfer/fsearch 不过带 GUI ,目前还没有 headless 版本。
还有 rlocate https://github.com/Wazzaps/rlocate rust 实现的 locate 命令,性能极大提升。
另外除非你文件真的非常多,不然可能不需要索引,直接用 fd https://github.com/sharkdp/fd#benchmark 就足够了,基于深度优化、支持 simd 的 regex ,性能远远强过 GNU find 。只读并不会影响磁盘寿命(除非你磁盘休眠了需要唤醒),另外如果文件非常多的话索引体积也不小。
wwlearnbc
2022-05-21 12:27:55 +08:00
catfish 或者 fzf
jessun1990
2022-05-21 13:49:44 +08:00
@Buges 感谢推荐,我也顺带试试。
mmdsun
2022-05-21 15:16:36 +08:00
Everything 是读取 NTFS 下的 USN Journal ,速度才有这么快的。

不过我用 Win 系统自己搜索多,系统自带可以设置搜索文件里的内容,全局搜代码不错。
pkwenda
2022-05-23 10:13:09 +08:00
https://www.v2ex.com/t/853610

V 友做的这个,我看有 linux 平台,可以试试看
fwindcore
2022-05-23 15:18:32 +08:00
我现在觉得 fd 就够用了,还支持 mac

https://github.com/sharkdp/fd

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

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

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

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

© 2021 V2EX