
fsearch 是一个跑在 macOS 上的全盘文件搜索工具。这个 软件工具 用 Rust 写,按文件名在约 1 毫秒内找到任何文件,容错拼写错误,还能带索引搜索文件内容。作为一个 开源软件,它可以当 CLI 用(带一个小守护进程),也可以当 Rust crate 链接进自己的程序。

场景痛点
Mac 上找文件要么靠 Spotlight 索引不准,要么靠 mdfind 命令行但不支持模糊拼写。记不清文件名是 main 还是 mian,找半天找不到。想按类型、大小、修改时间组合过滤,还想搜文件内容,不想等索引。做开发者工具和效率工具的人想要的,不是一个只按文件名匹配的搜索器,是一个 1 毫秒出结果、拼错也能找到、还能搜内容的全盘搜索。
主要功能特点
1 毫秒全盘搜索
M4 Max 上 770 万文件和文件夹,按文件名全盘搜索 p50 1.3 毫秒,文件内搜索 p50 9 毫秒。新文件、重命名或删除约 0.1 秒就出现。首次爬盘约 20 秒一次性完成。守护进程内存 30 到 135 MB。这种 macOS 级别的性能,比 Spotlight 快。
容错拼写加组合过滤
5 个字母以上的词容忍一个拼写错误,mian.rs 能找到 main.rs。支持 ‘exact、^prefix、suffix$ 和 !exclude。过滤器包括 ext:、type:、kind:、in:、size:、mtime:、re:、path:、grep:、regex:、sym:、limit:。内容搜索智能大小写。
对比 fff 快 10 倍
在 Chromium 50 万文件目录里,fsearch文件名搜索 1.1 毫秒,fff 是 13.8 毫秒。文件内搜索 5.6 毫秒对 53 毫秒。拼写错误仍找到文件 98% 对 88%。启动后就绪 50 毫秒对 2.5 秒。内存 50 MB 全盘对 358 MB 那个文件夹。这种系统工具级别的轻量,比同类工具省资源。
CLI 加 Rust crate 加 API
命令行直接搜,也可以通过 unix socket 发 JSON lines 查询,或用fsearch stdio。还能当 Rust crate 链接进自己的程序。应用和 CLI 共享一个索引,第一个进程拥有索引其他进程跟随。
FSEvents 增量更新
用 getattrlistbulk 爬盘一次,然后通过 FSEvents 保持更新。重启只回放变化的部分。名字存在一个 mmap 文件里按文件夹排列,内容搜索用 trigram 索引,匹配结果从磁盘实时读不过期。
简易使用教程
- 装好 Rust 工具链,clone 仓库后 cargo build –release。
- 跑 ./target/release/fsearch install 装到 ~/.local/bin/fsearch。
- 从带 Full Disk Access 的终端启动,它会索引全盘。
- 想开机自启就fsearch install –login,然后在系统设置里给它单独授权。
- 按文件名搜:fsearch fsearch main。
- 搜文件内容:fsearch ‘ext:rs grep:apply_dir’。
- 组合过滤:fsearch ‘type:image size:>5mb mtime:<7d’。
- 想当库用就 cargo add fsearch,在 Rust 代码里 fsearch::Engine::start。
- 日常用下来找文件和搜代码都在一个命令里,想找类似工具推荐里的系统工具可以翻酷软趣站。
官方网站
GitHub 访问
下载地址
https://pan.quark.cn/s/c05ebcb1a813
https://www.guangyapan.com/s/1957278830171430917_aeWhI5wocgzRgCO6 (光鸭新用户注册福利:永久免费空间:所有新用户注册即可解锁 2TB 永久免费存储空间,无需额外任务或付费)
相关推荐







