macOS:如何使用 Spotlight 的查询语言创建类似“我的所有文件”的功能
最近,我注意到 macOS 中的多个版本中都存在”我的所有文件”功能,直到 macOS 10.13 High Sierra,已经消失,取而代之的是较差的最近显示 – 并且无法恢复。一位 Macworld 读者来信指出,通过使用 Spotlight 记录较少的底层查询语言,您可以恢复该功能。
出于两个原因,我在上一篇专栏中避免了这种情况,但如果您愿意完成一些配置和挑剔的细节,您可能会发现这是值得的。首先,它需要学习一些类似编程的语法来构造查询,即使是键入或构造中最微小的错误也会使其无法工作,而不会出现任何错误,从而为您提供如何修复它的线索。这可能会令人沮丧,但我至少可以提供粘贴的方法。其次,根据您的 Mac 的使用期限以及驱动器上的文件数量,”所有我的文件”替换可能需要很长时间才能运行或更新,或者甚至减慢 Finder 的速度。
有了这些限制条件,您就可以这样做。 Spotlight 有一种底层的”原始查询”语言,Apple 上次更新文档是在 2011 年。这种语言允许您指定搜索参数,而该搜索参数无法通过 Finder 中智能文件夹中的预设弹出菜单选项来使用。
- 在 Finder 中,打开一个新文件夹,然后点击边栏中的”最近使用的内容”项目。
- 从齿轮菜单中选择”显示搜索条件”。
- 在”原始查询”旁边的字段中,准确输入以下内容:
(kMDItemFSName="*.*")
- 点击”修改日期”列可按从最新到最旧的顺序对它们进行排序。
- 点击”保存”。
- 将搜索查询命名为”我的所有文件”,然后选中该框以将其放入侧边栏中。
请注意,在查询上方,Spotlight 约束将显示”搜索:此 Mac [最近使用] 共享”,其中选择了”最近使用”。这将范围限制为常见位置中的文档类型,而不是 Mac 上随处可见的文件。如果您单击”This Mac”,您将看到对整组本地索引文件执行相同的查询,其中包括数据库文件以及用于系统和应用程序目的的其他文档,您永远不需要知道这些文件已更改,也不需要使用这些文件。不进行互动。
(您也可以使用这些步骤到达类似的位置,尽管它不会绑定在”搜索:最近”参数中。
- 选择”文件”>”新建智能文件夹”。
- 点击”保存”旁边的 +。
- 选择其中包含名称的弹出菜单。
- 选择其他。
- 在搜索字段中输入原始查询。
- 选择原始查询匹配并点击”确定”。
- 从上面的第 3 步继续。
智能文件夹应该很快就会填充结果。如果需要很长时间或减慢 Finder(或 Mac)的速度,您可以限制查询,这应该会加快速度。如果您想获取上周修改的所有文件,您可以将上面的查询更改为:
(kMDItemFSName="*.*") && (kMDItemFSContentChangeDate >= $time.this_week(-1))
原始查询字段不会显示长查询,因此您可能需要将其输入并在其他地方进行编辑以确保其正确。
在Apple的主要文档页面上,它描述了如何定义日期范围。您可以使用 &&
将所需条件串接到查询中,两侧各有一个空格。 (是的,两个&号用于”and”连接条件,而不是单个&号,它进行二进制比较。)
您可能仍然会从已编入索引并显示在这些结果中的文件中看到太多结果,但您不希望看到这些结果。对我来说,这是个人电子邮件,我可以在我的电子邮件程序中找到它们。
如果您想获得更多巴洛克风格,可以在 Spotlight 元数据属性页面,尽管您必须弄清楚有效值和其他详细信息。我对”我的所有文件”有一个更详细的查询,如下所示:
(kMDItemFSName="*.*") && (kMDItemFSContentChangeDate >= $time.this_week(-1)) && (kMDItemKind !="Mailsmith 消息文件") && (kMDItemFSName !="*.freelist" ) && (kMDItemFSName !="*.plist") && (kMDItemFSName !="*.messageData")
这在英文中读作”查找上周修改的所有文件,其中文件类型不是”Mailsmith 消息文件”,并且文件名不以”.freelist”或”.plist”或”结尾” .messageData。'”这为我提供了一个更易读的文件列表,我想查看其最近的活动。
询问 Mac 911
我们整理了最常被问到的问题列表以及答案和专栏链接:阅读我们的超级常见问题解答,看看您的问题是否得到解答。如果没有,我们总是在寻找新的问题来解决!通过电子邮件将您的信息发送至 mac911@macworld.com,包括适当的屏幕截图,以及您是否希望使用您的全名。每个问题都不会得到解答,我们不会回复电子邮件,也无法提供直接的故障排除建议。