使用技巧

如何在 Mac 上搜索文件内容

你记得文档里的一句话,却想不起文件名。macOS 本身就能搜索文件内容——下面讲用 Spotlight、访达和终端怎么搜,各自的局限,以及它们不够用时怎么办。

1. Spotlight

按 ⌘ 空格,输入文档里的几个词。Spotlight 会搜索文件名,以及已索引文件里的文字,包括 PDF、Word、Pages 和纯文本。

  • 精确短语加引号:"30 日内付款"。
  • 加上类型缩小范围:发票 kind:pdf。
  • 往下翻到文稿部分,或点底部的「在访达中搜索」查看全部结果。

适合: 用词比较独特时的快速查找。

2. 访达的「内容」搜索

  1. 打开访达窗口,按 ⌘ F。
  2. 输入关键词,在搜索框下出现的菜单里选「内容」(而不是「名称」)。
  3. 选择搜索范围:「这台 Mac」或当前文件夹。
  4. 点「+」添加条件,比如「种类」「上次修改日期」「创建日期」。

点「存储」可以把搜索保存下来,它会作为智能文件夹出现在访达边栏里,自动更新。

适合: 按文件夹、种类、日期缩小范围,保存经常用的搜索。

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 /文件夹路径 "关键词"。