V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX  ›  程序员

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

  •  
  •   drymonfidelia · 4 小时 5 分钟前 · 927 次点击
    几乎所有用过电脑的人使用过系统搜索功能吧?
    虽然现在和 Mac 相比 Windows 这边硬盘便宜得和不要钱一样,但我还是能少装一个软件就少装一个,每装一个软件都多一个攻击面,尤其是 Everything 这种自动更新服务还被劫持过,用来传播窃取文件的木马的软件 /t/878475
    17 条回复    2024-11-21 20:44:54 +08:00
    aminobody
        1
    aminobody  
       4 小时 0 分钟前
    因为 Linux 、macOS 都不用 NTFS 文件系统.
    drymonfidelia
        2
    drymonfidelia  
    OP
       3 小时 59 分钟前
    @aminobody Linux ext4 也有日志可以用来搜索啊
    1988chg
        3
    1988chg  
       3 小时 59 分钟前
    everthing 的主要是利用 nfts 的 MTF 和 usn 特性。

    Master File Table (MTF)

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

    USN journal

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

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

    然后我在 Linux 的~/Project 里面,搜索某个文件名。由于这个文件夹里面有很多 ts 项目,node_modules 文件夹比较多。使用 locate 命令搜索某个文件名,速度非常慢,要好几秒才有结果。
    yanqiyu
        11
    yanqiyu  
       3 小时 34 分钟前
    @yinxs200 不过 plocate 是靠的预先扫描的数据库来实现的,数据库扫描是靠 timer 来触发的
    loading
        12
    loading  
       3 小时 30 分钟前
    1. 目前其他系统没有 everything 类似性能的工具。
    2. windows 不会像 OS X 那样集成别人开发的优秀工具到自己系统,而 OS X 就比较喜欢,这样能杀死开发者。
    proxytoworld
        13
    proxytoworld  
       3 小时 24 分钟前
    权限隔离
    vcn8yjOogEL
        14
    vcn8yjOogEL  
       3 小时 13 分钟前
    NTFS 本身有索引, 其他平台的全盘搜索都是另跑一个服务在后台扫文件
    NoInternet
        15
    NoInternet  
       2 小时 24 分钟前
    系统可能不会集成,但是没准 powertoys 哪天搞一个
    MoonLin
        16
    MoonLin  
       2 小时 7 分钟前
    everything 不能区分用户,所以作为一个系统来说 Windows 肯定不会集成的
    drymonfidelia
        17
    drymonfidelia  
    OP
       46 分钟前
    @MoonLin 不能区分用户很容易解决啊,像 everything 一样弄个高权限 daemon 常驻,搜索调用 daemon 的接口,二次筛选当前用户能访问的文件列表返回
    @proxytoworld
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3044 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:31 · PVG 21:31 · LAX 05:31 · JFK 08:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.