核心用法
spotlight-search.sh 是基于 macOS 系统级 Spotlight 索引(mdfind)的本地文件搜索脚本,调用方式为:
scripts/spotlight-search.sh <directory> <query> [--limit N]
支持中文、日文等多语言内容搜索,可检索 PDF、docx、txt、md、代码文件等格式,返回文件路径、类型及大小。支持高级语法如精确短语 "phrase"、逻辑运算符 AND/OR、元数据查询等。
显著优点
- 极速响应:利用系统预建索引,无需遍历文件,百万级文件库瞬时出结果
- 深度内容感知:原生支持 PDF 内文、Word 文档、图片 OCR 文本等,无需额外解析
- 多语言支持:对 CJK 字符友好,优于多数命令行工具
- 低资源消耗:无 CPU 密集扫描,对比 grep/ripgrep 大幅降低负载
- 成熟生态:macOS 原生能力,稳定性高,隐私设置可控
潜在缺点与局限性
- 平台锁定:仅限 macOS,Linux/Windows 需替代方案
- 依赖索引状态:新文件或外置硬盘可能未纳入索引,需手动启用或等待重建
- 非语义搜索:基于关键词匹配,无法理解同义改写或上下文语义(需配合向量检索)
- 隐私限制:用户主动排除的目录(Spotlight 隐私设置)无法搜索
- 模糊匹配副作用:默认同义词扩展可能导致误召回,需用引号强制精确匹配
适合人群
- macOS 用户需频繁检索本地文档库(研究者、律师、内容创作者)
- 处理海量文本资产、对检索延迟敏感的专业人士
- 需快速定位 PDF/Word 内特定段落,避免打开逐个文件浏览的场景
常规风险
- 信息泄露风险:若多用户共享系统,索引内容可能暴露敏感文件路径(需配合系统权限管理)
- 结果完整性风险:索引延迟或权限配置错误导致漏检,关键决策前建议二次校验
- 脚本注入风险:query 参数若直接拼接用户输入,可能触发 shell 元字符解析(需严格转义或参数化处理)