V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
gabon
V2EX  ›  分享创造

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

  •  
  •   gabon · 2022-05-21 00:05:02 +08:00 · 3614 次点击
    这是一个创建于 947 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 条回复    2022-05-23 15:18:32 +08:00
    liprais
        1
    liprais  
       2022-05-21 00:07:18 +08:00
    有没有一种可能是跟 ntfs 这种微软专利的文件系统有关系呢
    devour
        2
    devour  
       2022-05-21 00:10:55 +08:00
    locate?
    2NUT
        3
    2NUT  
       2022-05-21 00:11:44 +08:00
    locate 会查找文件名数据库, 好像使用的 树 结构;

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

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

    搜索被编译成字节码并被执行。
    reorx
        6
    reorx  
       2022-05-21 01:22:11 +08:00
    最近 https://www.v2ex.com/t/853610 发布了一个跨平台的文件搜索工具,也支持 Linux
    Buges
        7
    Buges  
       2022-05-21 03:06:33 +08:00 via Android   ❤️ 1
    有一个高仿 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
        8
    wwlearnbc  
       2022-05-21 12:27:55 +08:00 via iPhone
    catfish 或者 fzf
    jessun1990
        9
    jessun1990  
       2022-05-21 13:49:44 +08:00
    @Buges 感谢推荐,我也顺带试试。
    mmdsun
        10
    mmdsun  
       2022-05-21 15:16:36 +08:00 via iPhone
    Everything 是读取 NTFS 下的 USN Journal ,速度才有这么快的。

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

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

    https://github.com/sharkdp/fd
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   885 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:06 · PVG 04:06 · LAX 12:06 · JFK 15:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.