fsearch实战:10个日常场景快速找出大文件、旧文档和丢失的代码
【免费下载链接】fsearchWhole-disk file search for macOS: fuzzy names, typo tolerance, indexed content grep. ~1 ms over 8M files.项目地址https://gitcode.com/gh_mirrors/fsea/fsearch点击查看免费下载fsearch 是一款面向 macOS 的整盘文件搜索工具按文件名全盘搜索仅需约1 毫秒800 万文件实测 p50 1.3 ms、自动容忍拼写错误还能通过倒排索引直接 grep 文件内容。它既能作为命令行工具附带后台守护进程使用也能作为 Rust 库集成到自己的应用中。本文用 10 个日常场景带你快速上手这款免费的本地文件搜索引擎。一分钟安装从源码到整盘索引fsearch 用 Rust 编写构建完成后一条命令即可安装git clone https://gitcode.com/gh_mirrors/fsea/fsearch cd fsearch cargo build --release ./target/release/fsearch install # 安装到 ~/.local/bin/fsearch首次使用时会自动触发全盘爬取约 20 秒完成之后靠 FSEvents 增量更新新建/改名/删除的文件约 0.1 秒内出现在结果里。建议用fsearch install --login让它随登录启动需要授予~/.local/bin/fsearch完全磁盘访问权限系统设置 隐私与安全性否则受保护的文件夹会被静默跳过。随时用fsearch status查看守护进程和索引状态fsearch bench 查询可以离线计时测试。用法说明见 src/main.rs核心依赖仅 rayon、memmap2 等寥寥几个见 Cargo.toml。速度实测为什么值得装作者在同机对比了 Chromium 源码目录约 50 万文件下的表现测试脚本在 demo/vs_fff.py指标fsearchfff按文件名找文件1.1 ms13.8 ms搜索文件内容5.6 ms53 ms拼错单词仍能排第一98%88%启动到可用50 ms2.5 s内存50 MB整盘358 MB单目录在 770 万文件的 M4 Max 上名称搜索 p50 1.3 ms、内容搜索 p50 9 ms详见 README.md。10 个日常搜索场景查询语法非常自然普通单词走模糊匹配再用ext:、size:、mtime:等过滤器收窄完整语法解析在 src/query.rs。场景 1清理磁盘找出所有 500MB 以上的大文件fsearch size:500mb limit:20size:支持 b/k/m/g/t 单位也支持区间写法size:100mb..2gb单位解析逻辑见 src/query.rs。这是空间清理的第一步。场景 2定位吃空间的大视频、大压缩包用type:按类别筛选image/video/audio/doc/code/archive/font 七类映射表在 src/query.rsfsearch type:video size:1gb fsearch type:archive size:100mb场景 3找出半年没动过的旧文档归档mtime:按修改时间过滤mtime:7d表示最近 7 天内修改过反过来mtime:1y就是超过一年没动过的文件fsearch type:doc mtime:1y in:~/Documents fsearch report mtime:2y时间单位支持 s/m/h/d/w/mo/y解析规则见 src/query.rs。配合in:~/Documents限定目录结果立刻清爽。场景 4文件名记不清拼错一个字母也能找到fsearch 对 5 个字母以上的单词自动容忍一个拼写错误代价分 60见 src/query.rs实测 98% 情况下错拼仍能排第一fsearch mian.rs # 照样找到 main.rs fsearch fucntion apply_dier场景 5只搜某个目录下的文件fsearch readme in:~/Developerin:会把路径规范化后与索引中的真实路径比对比如/etc实际是/private/etc实现细节在 src/query.rs。场景 6找回“丢失的代码”——按符号定位定义位置内容搜索基于文本文件的三元组倒排索引src/content.rs命中候选后直接读盘取行结果永不过期。sym:专门匹配符号定义fsearch sym:apply_dir # 它在哪个文件里被定义 fsearch ext:rs grep:TODO # 某类文件里搜关键词sym:的关键字集合与匹配规则见 src/content.rs。场景 7用正则做高级内容搜索fsearch ext:rs regex:fn\s\w_dir内容搜索默认是 smart-case模式全小写时忽略大小写正则用regex:、纯文本用grep:两者与名称过滤器可以自由组合。场景 8排除噪声只看自己写的东西!前缀表示排除精确匹配fsearch !node_modules !build readme内容索引本身也会跳过node_modules、.git、target、build/等生成目录省内存也更准清单在 src/content.rs。场景 9按扩展名 时间组合出“昨天拍的照片”fsearch type:image mtime:1d fsearch ext:rs,py,md mtime:7d size:100kb场景 10脚本化使用——JSON 输出与本地 API加--json可拿到结构化结果方便接进自己的工具fsearch size:1gb --json | jq .[0].path守护进程通过~/Library/Application Support/FSearch/fsearch.sock提供 JSON-lines API也支持fsearch stdio你的应用和 CLI 共享同一个索引连接逻辑见 src/server.rs。Rust 库用法示例见 README.md 的 API 一节与 src/lib.rs。常用过滤器速查表过滤器含义示例ext:扩展名可逗号多选ext:rs,pytype:类别 image/video/audio/doc/code/archive/fonttype:videokind:file / dir / linkkind:dirin:限定目录in:~/Developersize:大小支持范围size:500mb、size:1mb..10mbmtime:修改时间mtime:7d、mtime:1yre:/path:文件名 / 完整路径正则path:~/Workgrep:/regex:/sym:内容搜索文本 / 正则 / 符号定义grep:TODOlimit:结果条数limit:5exact/^prefix/suffix$/!exclude精确、前缀、后缀、排除!node_modules总结fsearch 把「全盘文件搜索 容错模糊匹配 内容 grep」三件事做到了毫秒级且内存占用仅 30–135 MB。日常清理磁盘、归档旧文档、找回丢失的代码上面 10 个场景基本覆盖 90% 的需求。所有引擎实现都在 src/ 目录下索引构建 src/index.rs、FSEvents 增量 src/fsevents.rs、全盘爬取 src/walk.rs源码开放欢迎阅读。赞分享【免费下载链接】fsearchWhole-disk file search for macOS: fuzzy names, typo tolerance, indexed content grep. ~1 ms over 8M files.项目地址https://gitcode.com/gh_mirrors/fsea/fsearch点击查看免费下载相关推荐LaTeX文档紧急救援手册5步快速找回丢失文件LaTeX文档紧急救援手册5步快速找回丢失文件 当你在深夜赶论文时LaTeX文档突然消失的瞬间足以让人崩溃。编辑器崩溃、误操作删除、系统故障——这些都是La开发工具IDEFSearch快速文件搜索神器让Linux文件查找效率提升10倍FSearch快速文件搜索神器让Linux文件查找效率提升10倍 还在为Linux系统中找不到文件而烦恼吗FSearch这款基于GTK3的快速文件搜索工具桌面应用ChartDB快速上手指南一条Smart Query如何把8种主流数据库变成可视化ER图ChartDB快速上手指南一条Smart Query如何把8种主流数据库变成可视化ER图 当你要接手一个陌生数据库、却只能对着满屏 DDL 逐行猜表关系时C数据库前端数据可视化AI 应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考