如果你从 Windows 转到 Mac,大概会怀念 Everything:敲几个字母,目标文件立刻出现。截至本文写作时,macOS 上没有官方 Everything,macEverything 用自建索引补上了这项能力——为你的主文件夹和 /Applications 建立本地索引,按文件名即时过滤,图形界面和命令行共用同一份数据。
Everything 为什么没有 Mac 版
Everything 是 voidtools 为 Windows 开发的工具。它能在瞬间列出整块磁盘的文件,靠的是直接读取 NTFS 的主文件表(MFT)和 USN 变更日志:文件系统本身保存着全量清单和变更记录,索引工具只需把这些数据读出来并组织成紧凑的数据库。
macOS 默认使用的 APFS 没有为第三方应用提供等价的公开接口。Spotlight 的索引由系统维护,第三方应用不能直接读取或控制底层数据库;虽然可以用 mdfind -name 或 NSMetadataQuery 查询文件名,但结果取决于 Spotlight 的导入器和排除规则,漏搜时可以按Spotlight 搜不到文件的排查方法检查。因此,macOS 上的同类工具通常要自己遍历目录、自己保存文件清单,再用 FSEvents 跟进后续变化。
截至本文写作时,Everything 没有官方 macOS 版本。macEverything 不是 Everything 的移植,而是按同样的使用习惯为 macOS 重新实现的一套工具。
macEverything 如何补位
macEverything 首次启动时扫描两个位置:你的主文件夹和 /Applications。默认排除 ~/Library、node_modules 与 .git。前两者聚集了大量缓存、依赖和项目内部文件,后者保存版本历史;把它们放进逐文件索引,只会让真正要找的文档淹没在噪声里。
扫描结果写入本地索引文件,保存在 ~/Library/Application Support/macEverything/,不经过网络,也不会上传。之后目录发生变化时,macEverything 通过 FSEvents 接收通知,只更新受影响的部分,而不是重新扫一遍全盘。
图形界面和随包提供的 macEverything 命令行读取同一份索引。命令行位于 App 包内的 Contents/MacOS/macEverything,只有在安装或软链到 PATH 后才能直接执行。下面的命令可以验证,结果与悬浮条一致,脚本和人工搜索不会得到两套结果;更多用法见 Mac 文件搜索指南:
macEverything query "报价单"
macEverything status
和 Everything、Spotlight 的对比
三者都能按名称找文件,但工作方式不同。下面按索引范围、更新方式、索引位置、终端入口和系统依赖逐项对照。
| 能力 | Everything | macEverything | Spotlight |
|---|---|---|---|
| 索引范围 | 默认索引所有本地 NTFS 或 ReFS 卷,以及你添加的文件夹 | 你的主文件夹与 /Applications | 由系统决定,取决于 Spotlight 设置 |
| 实时更新 | USN 变更日志 | FSEvents 增量,0.3 秒内可搜 | 系统索引自动更新 |
| 索引位置 | 本地 | 本地磁盘 | 系统 Spotlight 索引 |
| 终端命令 | es.exe(需单独下载) | macEverything(随包提供) | mdfind(系统自带) |
| 是否依赖系统索引 | 否 | 否 | 是 |
需要提前说明三点限制。第一,当前版本只扫描你的主文件夹和 /Applications,不索引外置硬盘或网络盘;这是后续版本的候选能力。第二,搜索按文件名工作,支持通配符、路径、大小写和整词等简单条件,但不支持正则表达式。第三,界面常驻内存约 136 MB,这是当前界面技术栈的基线;它不影响搜索结果,但内存占用偏高。
实测性能
测试环境为 Apple M5,索引约 128 万条目。首次扫描 100 万个文件约需 1.0–1.6 秒;查询延迟的 P99 为 2.9–3.6 毫秒;目录变化后,增量结果在 0.3 秒内即可被搜到。
这些数字来自固定测试集,实际速度会受磁盘类型、文件数量和排除规则影响。P99 指 99% 的查询在该时间内完成,比平均值更能反映输入过程中偶尔出现的慢响应。索引文件约每 100 万个文件占 63 MB,冷启动时直接加载已有索引,不需要重新扫描。
安装与使用
从官网下载 DMG(6.9 MB),打开后把 macEverything 拖进“应用程序”文件夹,首次启动会在后台建立索引。系统要求为 macOS 13 或更高版本,目前支持 Apple 芯片。
常用快捷键:⌥Space 唤起悬浮条,输入即搜;用 ↑ 和 ↓ 选择,回车打开;⌥⇧F 直接打开完整结果窗口。窗口里可以按大小或修改时间排序,也可以多选、空格快速查看,并通过右键拷贝文件、路径或文件名。
完全磁盘访问权限不是必需的。没有授权时,结果窗口状态栏会显示缺口数量,点开可查看目录,而不是静默跳过。授予权限后需要重启引擎(macEverything stop && macEverything start),索引才会补充这些位置;CLI 需要已安装并在 PATH 中,或直接使用 App 包内的 Contents/MacOS/macEverything。索引保存在本地磁盘,删除索引文件不会影响原文件,下次启动会重新生成。