有次要找一个半年前写的技术方案,只记得文件名里有「迁移」两个字。Windows 资源管理器右上角搜了整整三分钟还在转圈,最后出来一堆乱七八糟的 dll 和内容匹配的结果,我要的那个文件还在第 40 条。
换成 Everything 之后,同样一个词,输入完第二个字结果就出来了,总耗时不到一秒。这个差距不是优化出来的,是原理根本不一样。
为什么 Windows 自带搜索这么慢
Windows 搜索的逻辑是:你敲一个词,它去遍历文件,读文件名,还顺带读文件内容,边读边建临时索引。第一次搜某个目录尤其慢,因为它要现扫一遍。你关掉窗口,下次搜它又扫一遍。
Everything 走的是另一条路:它直接读 NTFS 文件系统的 USN 日志(Update Sequence Number Journal)。NTFS 每发生一次文件创建、改名、删除,都会往这个日志里记一笔。Everything 启动时把日志读一遍就能拼出完整的文件列表,之后靠系统通知增量更新,几乎不占资源。
代价也很明确:只支持 NTFS。FAT32 的 U 盘、exFAT 的移动硬盘、网络共享目录,它都读不到日志,那些目录只能退化成慢速遍历(或者干脆不索引)。
第一次装要改的四处设置
装完别急着用,先打开「工具 → 选项」做这几件事,体验差别很大:
1. 装成服务(关键)
在「常规」里勾上「以服务方式运行 Everything」。不装服务的话,它是个普通用户进程,没权限读系统目录和 USN 日志的完整内容,索引会缺一大块。装成服务后开机自启,托盘里那个图标只是个控制面板。
2. 排除掉噪音目录
在「索引 → 排除列表」里加这些:
C:\Windows\WinSxS
C:\$Recycle.Bin
C:\Users\<你>\AppData\Local\Temp
**\node_modules
**\.git
**\__pycache__
node_modules 这条特别重要。一个前端项目能有几万个文件,全索引进来不光拖慢更新,搜「index」的时候会冒出上千条同名垃圾。
实测(一块 1TB 的盘,约 96 万文件):
- 首次建索引:3.2 秒,占内存 88MB
- 排除 node_modules 后:1.9 秒,占内存 61MB
- 日常增量更新:几乎感知不到,CPU 占用长期 0%
3. 开 HTTP 服务器,手机上也能搜
「HTTP 服务器」勾上,设个端口(默认 8081)和密码。之后同一局域网里用手机浏览器打开 http://<电脑IP>:8081,就能远程搜这台电脑的文件。这个功能的用法是:在公司想起家里电脑某个文件在哪,先搜到路径,回家直接找。
4. 只索引 NTFS 卷
在「索引 → 文件夹」里,把 U 盘、光驱这类可移动设备删掉,不然每次插拔都会触发一轮重扫。
搜索语法,记住四条就够日常了
- 空格 = 与:
迁移 方案找同时含两个词的文件名 |= 或:jpg|png|webp一次找三种格式*通配:*2026*报告中间夹什么都行dm:today/dc:thisweek:按修改时间/创建时间过滤,找「最近改过的」比按名字找快得多
还有几个进阶的:
size:>500mb 大于 500MB 的文件
ext:mkv;mp4 多扩展名
regex:^backup_\d{8} 正则,找 backup_20260101 这类
path:Downloads 限定目录
content:关键词 搜文件内容(这个会慢,慎用)
content: 那一条会让 Everything 退化成逐文件读内容,失去速度优势。能用文件名搞定的,别用它。
它跟那些「启动器」不是一类东西
很多人会拿 Everything 跟 Listary、Wox、Flow Launcher 比,其实定位不一样:
| 工具 | 干什么 | 适合谁 |
|---|---|---|
| Everything | 专注文件名检索,快到极致 | 记得名字、想立刻定位 |
| Listary | 在资源管理器里直接唤起搜索 | 正在保存/打开文件的场景 |
| Flow Launcher | 搜文件 + 启动程序 + 算数 + 插件 | 想用一个框干所有事 |
| Windows 搜索 | 文件名 + 内容 | 只想搜文件内容、不在乎速度 |
实际用法是组合:Everything 负责「我知道叫什么,帮我找出来」,Listary 负责「我正在另存为,帮我跳到某个目录」。两者不冲突,而且 Listary 可以直接把搜索引擎设成 Everything。
两个要注意的地方
- USN 日志有大小限制,默认是 32MB。文件变动极其频繁的话,日志可能被覆盖,导致 Everything 漏掉一部分变更。可以在命令行里调大:
fsutil usn setjournal maxsize=268435200 C: - 共享目录别乱开权限:HTTP 服务器默认只监听本机,一旦勾了「允许来自网络的连接」,同一 WiFi 下的人都能搜你这台机器的文件名。开就一定要设密码
现在找东西基本是肌肉记忆了:双击托盘图标、敲三四个字、回车、右键打开所在目录,全程两秒。以前那种「我记得有这个文件但就是找不到」的烦躁感,确实少了很多。
你们平时搜文件用什么?有没有哪个场景是 Everything 搞不定、非得搜内容不可的?