1. 初见 Everything:别再让系统搜索浪费你的时间
如果你经常在 Windows 上找文件,大概率经历过这种场景:按下 Win 键,输入文件名,然后看着系统搜索转圈圈——几分钟过去,结果还不一定找得到。更让人抓狂的是,C:\Windows\System32 里那个藏在注册表里的第三方配置文件,明明就在那儿,系统搜索却视而不见。
我第一次遇到这个问题是在处理一台朋友的电脑,他在桌面堆了几百个文件,想找一个上个月下载的 PDF,直接搜文件名拼音搜不到,搜后缀也卡了半天。后来我帮他装了 Everything,他愣了一下:输入关键词的瞬间,结果已经出来了,快到像是打了草稿一样。
Everything 是一款 Windows 平台下的本地文件搜索工具,核心原理是直接读取 NTFS 文件系统的主文件表(MFT),而不是像系统搜索那样逐个遍历文件夹。这意味着它能做到毫秒级响应——不管你硬盘里有几十万还是上千万个文件,输入关键字基本按下就出结果。它只搜索文件名,不索引文件内容,这既是它的优势(快得离谱),也是它的边界(搜不到文件内部的关键词)。
适合什么样的人用?如果你经常写代码、整理素材、管理文档,或者只是单纯受够了 Windows 自带搜索的慢性子,Everything 都能让你找回一种“工具本该如此顺手”的快感。这篇教程我按自己的使用习惯铺开讲,从安装到高频操作,再到正则、HTTP 服务、命令行这些进阶玩法,尽量做到看完就能上手,少走弯路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装与基础配置先弄明白这几件事
2.1 安装版和便携版怎么选
Everything 提供安装版和便携版(Zip 包)两种形态。安装版会注册右键菜单、文件关联,还能设置开机自启;便携版解压即用,放到 U 盘里也能跑,适合经常换电脑或者在别人机器上应急。
我的建议是:自己的主力机器直接上安装版,省心;需要随时带走或者怕安装版留注册表痕迹的,用便携版。两个版本在功能上没有任何差别,核心引擎一样,差别只在系统集成的便利度。
下载时注意区分 64 位和 32 位。如今绝大多数 Windows 都是 64 位,选 Setup 64-bit 即可。语言方面官方自带简体中文,界面语言在 工具 -> 选项 -> 常规 里能切。
2.2 首次打开后的几个必调设置
装好之后,别急着用默认配置开跑,有几个设置项强烈建议先调掉,能少踩不少坑。
进入 工具 -> 选项:
- 常规 -> 搜索结果:把“匹配整个单词”取消勾选。默认情况下 Everything 是模糊匹配,但这并不意味着它会按你的想法模糊——比如你搜
read,默认会匹配already这类包含单词的内容,但你想要的可能是所有以read开头的文件。按我个人习惯,更推荐用通配符配合搜索,后面会细讲。 - 常规 -> UI:很多版本会默认显示“搜索历史”和“最近搜索”,我一般会关掉历史记录,一方面是隐私考虑,另一方面是保持搜索框干净,避免下拉列表干扰操作。
- 索引 -> 文件夹:Everything 默认索引所有 NTFS 卷。如果某个盘符是 FAT32/exFAT(比如 U 盘或部分移动硬盘),需要手动添加。这也是索引配置里的第一课。
- 索引 -> 排除列表:把
C:\Windows\System32、C:\Windows\WinSxS这类系统目录排除掉,能显著减少搜索结果里的噪音,也让索引量更小、内存占用更低。排除列表的路径支持通配符,配置起来很灵活。
提示:Everything 的索引是常驻内存的,默认情况下会读取全盘 MFT。如果你机器上挂了好几块 NTFS 大硬盘,建议只索引真正需要的盘符,否则每次启动都要扫描一遍,虽然通常也就几秒,但对NAS、多硬盘用户来说还是有感知的。
2.3 快捷键和操作习惯
Everything 默认没有全局热键,需要自己设定。强烈建议在 工具 -> 选项 -> 快捷键 里设一个比如 Ctrl + Shift + F 这样的组合,在任何软件里都能一键呼出搜索框,效率提升不是一点半点。
另外,双击文件默认是打开还是打开所在路径,这个在 常规 -> 结果 里可以调。我个人的习惯是双击打开文件,中键或者右键选择“打开所在文件夹”。如果你的工作流经常需要“定位到文件”,可以把双击行为改成“打开路径”,用着更顺手。
3. Everything 为什么这么快:原理其实是“作弊”
很多人第一次用 Everything 都会问:为什么它能这么快?是不是后台一直扫描所有文件?其实真相和很多人想的不一样。
Windows 的 NTFS 文件系统里有一张常驻的系统表叫 MFT(Master File Table,主文件表),它相当于整个磁盘文件系统的目录索引账本,记录着每一个文件和文件夹的名字、大小、时间戳、物理位置等关键信息。Everything 的加速逻辑很直接:它不申请遍历目录树,而是直接读 MFT。这就好比别人在几十层的大楼里一层一层找你要的人,而你站在物业管理处拿着全楼住户登记表,翻页就找到了。
正则表达式的支持也是从 MFT 这种结构里获得天然优势的,因为 Everything 只是把 MFT 里的文件名当成普通字符串做匹配,不关心路径深度、不逐目录进入,只做内存内的对比,速度自然快。
这里注意一个重要边界:Everything 的快是针对文件名搜索的。它不会索引文件内容,也不会像 Windows Search 那样建立内容索引。如果你需要按文档里的关键词搜索,那必须借助其他工具(比如 DocFetcher、AnyTXT Searcher 之类),或者用 Everything 先定位到文件,再配合内容搜索工具做二次过滤——这也是我实际工作中最高频的组合玩法。
还有一个隐藏机制:Everything 启动时会先加载 MFT 快照,然后通过 USN Journal(更新序列号日志)实时感知文件变化,所以当你新建了文件,Everything 几乎能立刻看到它,不需要你手动刷新。这个机制对 NAS、下载路径、编译输出目录这种高频变化的场合特别友好。
4. 搜索语法才是真正的效率分水岭
4.1 基础搜索:文件名、后缀和路径组合
Everything 的默认搜索逻辑是“包含匹配”,也就是你在搜索框输入啥,它就匹配包含这些字符的文件名。举个例子:
- 输入
report,能匹配到report.docx、myreportfinal.pdf、report_2025_backup.zip。 - 输入
*.pdf,能匹配所有 PDF 文件,因为*是通配符。
有几个最常用的匹配符号,建议先背下来:
| 符号 | 含义 | 示例 |
|---|---|---|
* |
匹配任意长度字符串 | *report* |
? |
匹配任意单个字符 | report?.pdf |
" " |
精确匹配整个短语 | "project report" |
! |
排除关键字 | report !draft |
path: |
限定路径搜索 | path:D:\work report |
ext: |
限定扩展名 | ext:docx |
size: |
限定大小 | size:>10mb |
dm: |
限定修改日期 | dm:2024-01..2024-06 |
组合起来你就发现它的威力:搜 D:\图片 !raw jpg size:>5mb,意思是“在 D 盘图片目录下,排除名字带 raw 的文件,找 JPG 格式且大于 5MB 的图片”。这几秒钟里,系统搜索可能还没扫完第一个文件夹。
这里有个我踩过的坑:Everything 默认把空格当作“与”逻辑,也就是多个关键词必须同时出现在文件名里。比如搜 report final,找到的是同时包含 report 和 final 的文件,而不是报告或者 final 二选一。如果你想要“或”逻辑,需要用 | 符号,比如 report|final。
4.2 正则表达式搜索:把 Everything 变成真正的兵器
Everything 内建了正则引擎,能在搜索框里直接用正则表达式匹配文件名。这是我日常最倚重的功能之一,强烈建议花半小时入门一下。
打开方式:搜索 -> 启用正则表达式(快捷键通常是 Ctrl + R),或者直接在搜索框输入 /regexp。也可以在搜索关键词前加 regex: 前缀,比如:
code复制regex:.*\.(jpg|png|gif)$
这条正则能匹配所有以 jpg、png 或 gif 结尾的文件,比写多个 ext: 条件更省事。再比如:
code复制regex:(?i)^(?!.*backup).*\.log$
这段表示:忽略大小写,排除任何名字里带 backup 的 .log 文件。这在做日志目录筛选时特别好用,比如你只想看当前服务的错误日志,不想被 app-backup.log 和不区分大小写的 .LOG 干扰时,一条正则全搞定。
正则表达式的开销比普通通配符高,但在 Everything 这种 MFT 索引引擎下依然很快。如果匹配的文件量特别大(比如整个磁盘搜 .*),实测也基本是秒级返回,唯一要注意的是输出结果可能太多,界面渲染会有一点点延迟,建议配合排序或过滤条件使用。
4.3 日期、大小和属性的组合筛选
文件名搜索之外,Everything 还能基于元数据进行搜索。这部分是很多人忽略但极其实用的地方。
- 日期范围:
dm:2024-01-01..2024-12-31,表示修改日期在 2024 年内的文件;dc:today表示今天创建;da:yesterday表示昨天访问。 - 文件大小:
size:>1gb、size:500mb..1gb这种区间写法都支持。 - 文件属性:
att:readonly、att:hidden、att:system,配合!可以做排除。
实际场景我举两个:
比如你老板说“把上周那个给客户发的 PPT 找出来”,你记不住文件名,但记得是 PPT 格式、上周修改的,只要求大于 20MB 因为里面有视频。搜索框就输入:
code复制D: ext:pptx dm:lastweek size:>20mb
回车,结果基本就在眼前。另一个场景是收拾磁盘空间:按大小排序,把所有超过 1GB 的安装包、压缩包、临时文件捞出来,逐个判断能不能删。
code复制size:>1gb sort:size-desc
Everything 支持直接在搜索框里附带排序指令,比如 sort:size-desc 就是按大小降序排列,不用额外点列头。这招在对大文件做清理时特别有用。
5. 进阶玩法:HTTP 服务、命令行与批量操作
5.1 把 Everything 变成一台局域网搜索服务器
Everything 内置了 HTTP 服务器,开启之后,同一局域网内其他设备可以通过浏览器访问搜索服务。这个功能我用得很多,特别适合家里有 NAS 但文件管理混乱、或者想从手机/平板快速找电脑上文件的场景。
开启方式:工具 -> 选项 -> HTTP 服务器,设置端口(默认 80,如果被占用可以改成 8080 之类的空闲端口),然后勾选“启用 HTTP 服务器”。
启动之后,在局域网内另一台设备上访问 http://你的IP:端口/,会看到一个精简网页搜索界面。搜索结果支持直接下载文件,也可以在线预览一些文本和图片类型。
安全方面要注意几点:
第一,强烈建议设置用户名密码。在 HTTP 服务器设置里填上账号和密码,避免整个局域网的人都能访问到你的文件。
第二,注意白名单。Everything 的 HTTP 服务默认只服务于本地回环地址或者局域网段,如果你有公网映射的需求,记得把监听地址限制在特定网段,别直接暴露到公网。没事别做端口映射,这相当于给互联网上素不相识的人递了一把能看到你全盘目录索引的钥匙。
第三,HTTP 服务主要是为“查”和“下载”设计的,不支持上传,所以不要指望它当网盘用。
5.2 命令行调用:Everything 可以被写作工具集成
Everything 自带命令行工具 es.exe,这个工具讨厌人之处在于它经常被忽略,但其实用起来非常方便。
比如你写批处理脚本或者 Python 脚本时,想快速定位某个文件路径,直接调用:
bash复制es.exe -r "regex:.*\.mp4$" "D:\video"
可以理解为 Everything 的“命令行模式”。常用参数有:
-r启用正则表达式搜索-p完整路径匹配-s按大小排序-d按日期排序-w只输出完整路径,不输出文件名和大小-n限制搜索结果数量
我现在会在 PowerShell 里定义函数,把 es.exe 当作快速定位工具:
powershell复制function Find-File($name) {
& "C:\Tools\es.exe" -w $name | ForEach-Object { Write-Host $_ -ForegroundColor Green }
}
这样日常脚本里需要“拿文件路径”的时候,再不用自己手写 Get-ChildItem 递归遍历了,效率完全不一样。
5.3 批量重命名与文件处理
Everything 本身没有改名功能,但它可以配合独立的重命名工具来做批量操作。我常用的流程是:
- 在 Everything 里精确筛选出目标文件集(比如
*.jpg dm:2024-05-01..2024-05-31)。 - 全选(
Ctrl + A)。 - 右键选择“复制完整文件名”并粘贴到 Excel 或者批量重命名软件里。
- 按照规则批量改好之后,再通过 Everything 验证结果。
这里有个细节:Everything 的复制功能非常贴心,支持复制文件名、复制完整文件名、复制路径等多种模式,快捷键分别是 Ctrl + Shift + C、Ctrl + Alt + C 等(不同版本可能略有差异)。利用好这些能力,可以把“搜寻到处理”的整个链路盘活,而不只是一次性查完就完事。
如果你要删除大量文件,也可以直接全选然后 Shift + Delete,但强烈建议删之前先开 文件 -> 导出,把文件列表保存成 CSV 或纯文本备份。毕竟 Everything 的搜索太快,手一抖可能就是几百个文件没了。
5.4 ETP 服务器与文件列表的扩展玩法
HTTP 之外,Everything 还支持 ETP(Everything Transfer Protocol)服务器。ETP 主要用于让局域网内的另一台 Everything 实例直接连接这台机器的索引,相当于把搜索能力“灵活共享”出去。
实际体验里,ETP 比 HTTP 更有“原生的 Everything 味道”:客户端可以直接在搜索框输入 etp://用户名:密码@主机名/,然后无缝搜索远程磁盘目录,操作手感和搜索本地目录一模一样。对于家里两台电脑互找文件,或者办公室内共享素材库,这个功能非常好用。
文件列表(.efu 文件)则是另一种数据快照玩法。你可以把某一个盘符或文件夹的索引导出成一个 .efu 文件,之后即使这个磁盘拔掉了,你也可以打开这个文件列表,快速查阅当时有哪些文件。这个功能用于归档、审计特別方便,比如外置硬盘内容变更前后各导出一份,对比就知道多了哪些文件、少了哪些文件。
6. 性能调优与索引维护别让 Everything 变负担
6.1 索引大小、内存占用与排除名单
Everything 索引全盘时,内存占用通常非常低,一般在几十到一两百 MB 的量级。这和 Windows Search 动不动占几百 MB 相比,已经是十分克制了。不过,如果你有几块 4TB、8TB 的大硬盘,文件数量上千万,内存可能升到 300MB 以上。虽然对现代机器不算什么,但如果你同时跑着大型 IDE、虚拟机,每一点内存都宝贵,该优化还是得优化。
优化手段就一条主线:减少索引量。
- 把无关的盘符、文件夹从索引里排除。
- 在
排除列表里添加系统目录、缓存目录、临时目录,比如*.tmp、$RECYCLE.BIN、System Volume Information。 - 对于 NAS 映射出来的网络驱动器,注意它不总是走 MFT,可能还是通过文件夹扫描方式索引的。网络路径的文件变化频率高时,Everything 的实时更新机制并不能完全依赖 USN Journal,偶尔需要手动刷新。
6.2 实时更新与重建索引的取舍
Everything 默认通过 USN Journal 达成秒级实时更新,正常情况下你新建、删除文件后立刻就能反映到搜索结果里。如果发现搜索结果显示旧数据,最常见的原因是系统盘没有启用 USN Journal(某些精简版系统或硬盘格式化时被关闭),或者 Everything 的实时监控没能正常启动。
这时候可以到 文件 -> 强制重建索引 强制刷新。这个操作会重新读取一遍 MFT,几秒钟到几十秒不等(看盘大小)。注意“重建索引”不是重新扫描文件名,它读的还是 MFT 快照,只是把本地缓存重新同步一遍,所以速度依然很快。
注意:如果你在用 Everything 的“服务模式”(以 Windows 服务方式运行),千万不要想当然停掉服务再重启试试。正常做法是先通过客户端检查连接状态,再考虑重建索引。服务模式如果配置错误,会导致客户端连不上索引,看起来像“搜索失效”,但其实数据没有丢。
6.3 多磁盘、移动硬盘和网络路径的处理
移动硬盘和 U 盘这类可移动设备,Everything 默认不做索引。你插入一个新盘时,第一次搜索该盘会提示是否加入索引。点击“是”,Everything 会把它加入日常索引里,拔掉时则自动过去。
如果你经常在多个磁盘之间倒腾文件,建议在 工具 -> 选项 -> 索引 -> NTFS 里查看当前所有卷的索引状态。注意 NTFS 卷只是其中一类,FAT32/exFAT 卷需要手动添加为“文件夹”才能被覆盖。
网络路径(UNC)的情况稍微复杂一些。Everything 对网络共享的索引不是基于 MFT 的实时快照,而是以“文件夹”方式扫描进去的。文件变化后的感知能力不如本地 NTFS 那么灵敏。我的建议是:如果是 NAS 或共享服务器,请尽量用 SMB 方式映射为本地盘,配合 Everything 手动刷新;如果是频繁更新的构建输出目录(比如 CI 自动化拉取后的目录),可以考虑在每次构建结束后调用 es.exe -reindex-folder \\server\share\build 之类的方式强制刷新。
7. 高频问题与真实避坑记录
用 Everything 这几年,我归纳了几个大家常见的问题。单独列出来,方便你排查时对照查询。
| 问题 | 可能原因 | 排查思路 |
|---|---|---|
| 搜索结果空白但有索引 | 排除了整个盘符或关键目录 | 到排除列表里检查是否有误排除的路径 |
| 搜索速度变慢 | MFT 太大、结果集上百万条 | 加搜索条件缩小范围,或用 sort: 让 UI 少渲染 |
| 找不到刚新建的文件 | USN Journal 异常或监控未启动 | 强制重建索引,观察是否有报错 |
| 局域网 HTTP 客户端无法访问 | 防火墙拦截或端口被占用 | 查 netstat -ano 确认端口监听,检查防火墙入站规则 |
| 搜索结果包含过期文件 | 旧索引缓存未更新 | 强制重建索引,必要时重启 Everything |
| U 盘内容不显示 | FAT32/exFAT 未被索引 | 手动把 U 盘路径添加为文件夹索引 |
有一个非常经典且容易误判的问题:Everything 默认找不到系统隐藏文件。比如你输入 desktop.ini,可能搜不到。这不是 bug,而是索引结果默认排除了隐藏文件和系统文件。解决办法是在 工具 -> 选项 -> 搜索结果 里勾选“显示隐藏文件”和“显示系统文件”,或者用 att:hidden、att:system 做定向匹配。
另一个我踩过多次的坑是误删。Everything 太强大了,筛选条件一宽,可能全盘几百个文件同时被选中。有一次我想清空一个目录里的 .tmp 文件,条件敲得松了点,结果把整个目录下所有扩展名是 tmp 开头的文件全部打上了标记,差点把一个项目生成文件的缓存全删了。从那以后,我养成习惯:删除前先把筛选结果导出一份清单,或者在搜索框里加 ! 排除“从不删除”的目录。比如:
code复制*.tmp !path:D:\project\keep
这样把重要目录先摘出去,剩下的再全选处理,危险系数直线下降。
8. 我常用的几个高能场景组合技
最后分享几个我日常使用频率极高的组合玩法。这些都不是什么冷门黑科技,但组合起来非常顺手。
场景一:给同事发素材,只发最近修改过的
找文件不是问题,问题是老板突然问“上次那个视频素材发我一下”。我的操作是:
code复制D:\素材 ext:mp4 dm:lastweek
搜出来后再用 Everything 右侧预览列确认文件大小和时长,不需要打开文件夹就能判断是不是目标文件,然后直接选中复制到微信框。
场景二:清理 C 盘空间
过滤大文件,首先搜:
code复制C: ext:log size:>100mb sort:size-desc
C: ext:tmp size:>50mb sort:size-desc
再把下载目录单独拉出来看哪些是重复下载的安装包。这套流程我用来清理挤爆的 C 盘,基本十分钟内能找回 5-10GB 空间。
场景三:配合 Everything 的 CLI 做自动化归档
我有个小脚本,每天早上用计划任务跑一次,把下载目录里超过 30 天的文件自动转移到备份盘,并且通过 es.exe 检测是否有目标文件已经存在,避免重复拷贝。类似这样的批处理:
batch复制@echo off
setlocal
set SRC=D:\Downloads
set DST=E:\Backup\Downloads
es.exe -n 1 -w "%SRC%\*.zip" >nul 2>&1
if not errorlevel 1 (
robocopy "%SRC%" "%DST%" *.zip /mov /minage:30 /s
)
endlocal
这个脚本的巧妙之处在于用 es.exe -n 1 做一次快速探测,然后才执行 robocopy,整个过程没有任何窗口闪现和额外扫描,比 dir 指令高效太多。
场景四:通过 Everything 快速预览代码工程结构
搜索代码文件时,我喜欢用正则匹配特定文件名模式,比如找所有 Dockerfile:
code复制regex:dockerfile$
或者找所有导入配置:
code复制regex:(docker-compose\.ya?ml|Dockerfile)$
然后用“打开所在文件夹”,右键用 VS Code 打开目录,一套操作行云流水。
这些组合技其实都建立在“搜索足够快”的基础上。Everything 用熟练后,你会逐渐把搜索当成一种本能操作,而不再是一个需要等待的“功能”。文件管理这事,说到底就是能不能在需要的时候以最快速度找到正确的东西,剩下的都是习惯问题。我个人在实际操作中的体会是:与其记住一百种命令,不如把最常用的几种组合练到闭眼都能敲出来,效率的提升立竿见影。
