nas 上存放了很多文件,如果需要根据名称模糊搜索某个文件要全盘扫描,慢而且感觉对磁盘不友好。所以 Linux 平台有没有类似工具,如果没有可不可以通过 inotify 或者其它什么 api 等自己写一个工具,不太了解 linux 文件系统
1
F281M6Dh8DXpD1g2 2022 年 5 月 21 日
有没有一种可能是跟 ntfs 这种微软专利的文件系统有关系呢
|
2
devour 2022 年 5 月 21 日
locate?
|
3
2NUT 2022 年 5 月 21 日
locate 会查找文件名数据库, 好像使用的 树 结构;
不清楚 everything 的原理 |
4
weyou 2022 年 5 月 21 日 via Android locate 还不够快么
|
5
2NUT 2022 年 5 月 21 日 Everything 直接扫描 MFT ,这将 Everything 限制为仅 NTFS 卷。
一切都制作了这个 mft 的一个非常简单的副本并将其保存在内存中,使用 USN 更改日志来监视更改。 搜索被编译成字节码并被执行。 |
6
reorx 2022 年 5 月 21 日
最近 https://www.v2ex.com/t/853610 发布了一个跨平台的文件搜索工具,也支持 Linux
|
7
Buges 2022 年 5 月 21 日 via Android 有一个高仿 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 。只读并不会影响磁盘寿命(除非你磁盘休眠了需要唤醒),另外如果文件非常多的话索引体积也不小。 |
8
wwlearnbc 2022 年 5 月 21 日 via iPhone
catfish 或者 fzf
|
9
jessun1990 2022 年 5 月 21 日
@Buges 感谢推荐,我也顺带试试。
|
10
mmdsun 2022 年 5 月 21 日 via iPhone
Everything 是读取 NTFS 下的 USN Journal ,速度才有这么快的。
不过我用 Win 系统自己搜索多,系统自带可以设置搜索文件里的内容,全局搜代码不错。 |
11
pkwenda 2022 年 5 月 23 日
|
12
fwindcore 2022 年 5 月 23 日
|