• 请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX  ›  程序员

为什么 Windows、 Linux 都不内置类似 Everything 的全盘秒搜功能? macOS 好像搜得挺快,不知道是不是有类似的功能

  •  
  •   drymonfidelia · Nov 21, 2024 · 4845 views
    This topic created in 713 days ago, the information mentioned may be changed or developed.
    几乎所有用过电脑的人使用过系统搜索功能吧?
    虽然现在和 Mac 相比 Windows 这边硬盘便宜得和不要钱一样,但我还是能少装一个软件就少装一个,每装一个软件都多一个攻击面,尤其是 Everything 这种自动更新服务还被劫持过,用来传播窃取文件的木马的软件 /t/878475
    27 replies  •  2026-01-13 16:04:17 +08:00
    aminobody
    aminobody
    Nov 21, 2024
    1
    因为 Linux 、macOS 都不用 NTFS 文件系统.
    drymonfidelia
    drymonfidelia
    OP
    Nov 21, 2024
    2
    @aminobody Linux ext4 也有日志可以用来搜索啊
    1988chg
    1988chg
    Nov 21, 2024
    3
    everthing 的主要是利用 nfts 的 MTF 和 usn 特性。

    Master File Table (MTF)

    在 NTFS 文件系统中,有一个特殊的表,称为 MTF 表。所有文件夹和文件的名称都被存储在该表中,Everything 通过遍历这个表的所有内容,实现在不遍历文件系统就能获取当前磁盘中的所有文件的名称和路径。

    USN journal

    NTFS 的日志功能。所有对文件系统的修改操作都被记录在了一个 journal 日志文件中。Everything 通过监控这个日志文件实现对文件修改的监控。
    drymonfidelia
    drymonfidelia
    OP
    Nov 21, 2024
    4
    @1988chg ext4 也有日志功能,也有存放 inode 关系的表
    drymonfidelia
    drymonfidelia
    OP
    Nov 21, 2024
    5
    而且 Windows 也没内置这种功能
    aminobody
    aminobody
    Nov 21, 2024
    6
    @drymonfidelia #2 目前所有主流文件系统都是有 journal 的, 不过这个是为了维护一致性. EV 搜得快是因为 NTFS 特有的 USN 日志, 注意不要与 NTFS 文件系统的日志设计混淆。
    PTLin
    PTLin
    Nov 21, 2024
    7
    其实 fzf 也没慢到哪去的
    yanqiyu
    yanqiyu
    Nov 21, 2024
    8
    USN 日志和日志式文件系统维护一致性的那个日志不是一个日志
    yinxs2003
    yinxs2003
    Nov 21, 2024
    9
    Linux 有啊,locate 命令,比 everything 快多了
    itskingname
    itskingname
    Nov 21, 2024
    10
    @yinxs2003 亲测 locate 没有 everything 快。

    我的 windows 电脑上面安装了很多游戏,理论上硬盘里面有非常多的文件。打开 everything 以后, 他是在整个硬盘层面搜索某个文件名,能秒出。

    然后我在 Linux 的~/Project 里面,搜索某个文件名。由于这个文件夹里面有很多 ts 项目,node_modules 文件夹比较多。使用 locate 命令搜索某个文件名,速度非常慢,要好几秒才有结果。
    yanqiyu
    yanqiyu
    Nov 21, 2024
    11
    @yinxs200 不过 plocate 是靠的预先扫描的数据库来实现的,数据库扫描是靠 timer 来触发的
    loading
    loading
    Nov 21, 2024
    12
    1. 目前其他系统没有 everything 类似性能的工具。
    2. windows 不会像 OS X 那样集成别人开发的优秀工具到自己系统,而 OS X 就比较喜欢,这样能杀死开发者。
    proxytoworld
    proxytoworld
    Nov 21, 2024
    13
    权限隔离
    vcn8yjOogEL
    vcn8yjOogEL
    Nov 21, 2024
    14
    NTFS 本身有索引, 其他平台的全盘搜索都是另跑一个服务在后台扫文件
    NoInternet
    NoInternet
    Nov 21, 2024
    15
    系统可能不会集成,但是没准 powertoys 哪天搞一个
    MoonLin
    MoonLin
    Nov 21, 2024
    16
    everything 不能区分用户,所以作为一个系统来说 Windows 肯定不会集成的
    drymonfidelia
    drymonfidelia
    OP
    Nov 21, 2024
    17
    @MoonLin 不能区分用户很容易解决啊,像 everything 一样弄个高权限 daemon 常驻,搜索调用 daemon 的接口,二次筛选当前用户能访问的文件列表返回
    @proxytoworld
    ekucn
    ekucn
    Nov 22, 2024
    18
    @drymonfidelia 这样搞速度就上不去了,那又跟普通搜索啥区别?
    zwl2012
    zwl2012
    Nov 22, 2024 via iPhone
    19
    1.windows 环境下不止使用 ntfs 文件系统
    2.windows 作为一个极其看重兼容性的系统,其搜索功能不能仅考虑 ntfs 文件系统,它的搜索需要在系统支持的所有文件系统中都能使用
    3.everything 快是因为其开启了索引服务监听 ntfs 下 usn 日志变化加载到内存做相关过滤筛选,而 windows 搜索比较慢的时候会提示你开启文件索引,最差的情况下系统会逐个便利
    4.现代的 windows 的索引不仅可以针对文件名称,文件内容也可以;只是默认并未开启,仅需用户做好相关配置加一定的建立索引的时间,即可达到媲美 everything 的效果
    以上是个人对此问题的部分看法
    yinxs2003
    yinxs2003
    Nov 22, 2024
    20
    @itskingname everything 的快是在后台占用不少资源的,locate 搜啥也是秒出,谁知道你的为啥那么慢
    Kyecox
    Kyecox
    Nov 22, 2024
    21
    @zwl2012 win 的索引速度感觉跟乌龟爬一样慢,et 能这么快,不知道自带索引是怎么搞的
    meteora0tkvo
    meteora0tkvo
    Nov 22, 2024
    22
    Linux 的 find 命令也搜得很快啊,只有 windows 自带的搜索做得那么拉跨
    iceecream
    iceecream
    Nov 22, 2024
    23
    locate 是基于库的,每天一更新。当天的文件是 locate 不出来的。
    find 找文件基本上算全盘扫描。最慢的一种。
    Ocean810975
    Ocean810975
    Nov 22, 2024
    24
    歪个楼,相比 everything 我倒是觉得 Listary 更好用一些,主要在一些集成资源管理器上的部分。比方一些上传文件时就可以用其直接搜索。

    windows 自带的索引我觉得都能直接关了……虽说那个能搜索 word 等文件里面的内容。但无论速度还是分词什么的,感觉多多少少有点问题。
    CodeAllen
    CodeAllen
    Nov 22, 2024
    25
    搜索需求很小。
    找项目找代码习惯 vs code 的项目全局搜索
    找文档直接去 one drive 目录使用自带的搜索功能
    目前足够了,桌面图标我都关了,看着乱
    所有文档我都用 one drive 同步,公司相关文档也就 3GB 多,才 1600 多个文件
    azhaojingjing
    azhaojingjing
    Sep 3, 2025
    26
    kde 下面 alt+space 不就好了么
    hkhk366
    hkhk366
    Jan 13
    27
    @drymonfidelia 楼主你需要一个高度优化过的系统,我的搜索系统 www.filepulsesoft.com ,过去仅支持 win ,现在已经支持 linux,mac 同时原生支持 x86_64,arm64
    同时支持文件名和文件内容索引,支持跨系统跨架构组成集群搜索,搜索结果在集群中排序。文件名和文件内容变动后在整个集群实时更新。
    我的 mac 文件比较少,100 万文件 4 秒多完成索引。搜索全部 100 万文件文件名,搜索速度 4 毫秒,截图如下:


    linux 下和 Windows 下都要比 mac 速度更快,官网有性能测试报告
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3062 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 04:41 · PVG 12:41 · LAX 20:41 · JFK 23:41
    ♥ Do have faith in what you're doing.