1. 1. Everything工作原理
    1. 1.0.0.1. Master File Table (MTF)
    2. 1.0.0.2. USN journal
  • 2. 如何安装在 Powertoys Run 中启用 Everything 的插件
  • PowerToys Run 和 Everything 都很快。

    Powertoys 是一款由微软和社区共同开发的开源的软件,Powertoys Run 便是其中的一个功能,它的作用类似于 Mac OS 上的「聚焦搜索」,在可以快速搜索文件的同时也有许多插件可以使用。但是搜索文件时依赖的是 Windows 中的「索引」,这东西不仅建立慢而且搜索速度也不见得会加快多少。Everything 的出现就可以利用 NTFS 格式的特性来快速搜索。那要怎么样才可以在 Powertoys Run 中使用 Everything 呢?

    Everything工作原理

    来自知乎用户「骁龙800」的回答

    Everything是我严重依赖的一个软件,来答一答。Everything和Windows搜索是有区别的,以下列几点:

    1. Everything只能搜索文件名和文件夹名,Windows搜索可以搜索文件名和文件内容
    2. Everything只能搜索NTFS格式的文件系统,Windows搜索可以搜索任意文件系统(例如FAT32,exFAT,NTFS)

    但有时我们需要的恰好就是快速搜索文件名,那么Everything的工作原理是如何呢? 先简单介绍一下NTFS的两个功能,MFT和USN journal。

    Master File Table (MTF)

    在NTFS文件系统中,有一个特殊的表,称为MTF表。所有文件夹和文件的名称都被存储在该表中,访问该表的速度非常快,使应用程序可以不遍历文件系统就能获取当前卷(磁盘)中的所有文件的名称和路径。

    USN journal

    NTFS还有一个日志功能。所有对文件系统有修改的操作都被记录在了一个journal日志文件中。Everything的原理程序启动时,扫描系统所有NTFS卷(磁盘)的MTF表,将文件名称以一种利于字符串检索的算法形式存储在Everything的index索引数据库中。系统运行过程中,Everything还会监控NTFS卷的journal日志文件,如果文件系统中的文件发生改变,Everything会更新它的index索引数据库。当用户搜索文件时,Everything利用字符串查找算法,在index索引数据库中查找,可以直接搜索到文件。

    如何安装在 Powertoys Run 中启用 Everything 的插件

    要启用这个插件,首先你需要先下载并安装好 Everything,并确保它处于开启状态,插件运行需要 Everything 开启状态。别担心,不会占用很多系统资源的。

    接着,前往 Github 下载这款 EverythingPowerToys 插件,将其解压至

    C:\Program Files\PowerToys\modules\launcher\Plugins

    重启 Powertoys,打开 Powertoys Run 选项卡,将「Everything搜索」打开,并且关闭「Windows 搜索」,这时按下快捷键打开 Powertoys Run,可以看到已经生效了。