使用技巧
如何在 Mac 上搜索文件内容
你记得文档里的一句话,却想不起文件名。macOS 本身就能搜索文件内容——下面讲用 Spotlight、访达和终端怎么搜,各自的局限,以及它们不够用时怎么办。
1. Spotlight
按 ⌘ 空格,输入文档里的几个词。Spotlight 会搜索文件名,以及已索引文件里的文字,包括 PDF、Word、Pages 和纯文本。
- 精确短语加引号:
"30 日内付款"。 - 加上类型缩小范围:
发票 kind:pdf。 - 往下翻到文稿部分,或点底部的「在访达中搜索」查看全部结果。
适合: 用词比较独特时的快速查找。
2. 访达的「内容」搜索
- 打开访达窗口,按 ⌘ F。
- 输入关键词,在搜索框下出现的菜单里选「内容」(而不是「名称」)。
- 选择搜索范围:「这台 Mac」或当前文件夹。
- 点「+」添加条件,比如「种类」「上次修改日期」「创建日期」。
点「存储」可以把搜索保存下来,它会作为智能文件夹出现在访达边栏里,自动更新。
适合: 按文件夹、种类、日期缩小范围,保存经常用的搜索。
3. 终端:mdfind
mdfind 查询的是和 Spotlight 同一份索引,适合结果很多或要写脚本的时候。
mdfind "逾期付款"
mdfind -onlyin ~/Documents "发票"
mdfind -name "合同"
mdfind 'kMDItemTextContent == "*overdue*"cd'
最后一种只搜正文内容,c 表示不区分大小写,d 表示忽略重音符号。
4. 终端:用 grep 搜纯文本文件
代码、Markdown、日志这类纯文本文件,可以用 grep 直接读文件,不依赖任何索引:
grep -ril "逾期付款" ~/Documents
-r 递归搜索子文件夹,-i 不区分大小写,-l 只列出匹配的文件名。它读不了 PDF 和 Office 文档的内容,文件夹很大时也比较慢。
文件搜不出来的时候
- 检查 Spotlight 的排除项:「系统设置 › Spotlight › 搜索隐私」里的文件夹不会被索引。
- 检查索引状态:
mdutil -s /显示启动磁盘是否开启了索引。 - 重建索引:
sudo mdutil -E /会清除并重建启动磁盘的 Spotlight 索引,需要一段时间。 - 只在云端的文件:iCloud 云盘等云盘文件夹里只存在云端的文件,本机没有内容可搜,先下载下来。
- 扫描版 PDF:只是文字图片的 PDF 没有可搜的文字,需要先做 OCR。
系统自带工具做不到的
Spotlight、访达和 mdfind 匹配的是你输入的字词。这些情况它们帮不上忙:
- 记得意思,不记得原话:你搜「退款政策」,文档里写的是「退货与补偿」。
- 需要知道为什么命中:结果只是文件名,要一个个打开找那一段。
- 文档很长:找到了那份 60 页的 PDF,还得在里面再搜一遍。
什么时候需要专门的工具
有不少 Mac 应用能补上系统自带工具的不足——见我们整理的 Spotlight 替代工具。Memtrove 是我们做的:
- 按意思搜索,同时也按名称和内容搜:搜「关于逾期付款违约金的合同」,原文没有这几个字也能找到。
- 每条结果标明命中原因——正文匹配、文件名匹配或按意思匹配——预览直接打开文档里命中的章节。
- 用平常的话加筛选:比如
上个月 下载里的 "30 日内付款"。 - 自己的索引,留在你的 Mac 上,不依赖 Spotlight 的设置。
- 可选接入 AI 应用:让 Claude 搜索、阅读你的文件。
常见问题
Spotlight 能搜索 PDF 里的内容吗?
能,前提是 PDF 里有真正的文字,并且所在文件夹被索引了。没有文字层的扫描版 PDF 要先做 OCR 才能搜。
为什么访达搜不到我确定在文件里的文字?
常见原因:搜的是「名称」而不是「内容」;文件夹在 Spotlight 的搜索隐私里被排除了;文件只在云端;或者 Spotlight 索引需要重建。
怎么只在一个文件夹里搜索文件内容?
在访达里打开那个文件夹,按 ⌘ F,把范围从「这台 Mac」改成文件夹名。在终端里用 mdfind -onlyin /文件夹路径 "关键词"。