2

看看这个 mdfind 查询:

mdfind 'kMDItemFSName = "Pages.app" || kMDItemFSName = "Keynote.app" || kMDItemFSName = "Numbers.app"'  

有什么问题吗?也许合乎逻辑OR- ||Apple 在mdfind手册页上没有记录?

在 99% 的情况下,mdfind返回每个应用程序的三个文件路径/位置iwork(或未安装时不返回任何内容)。

/Applications/iWork '09/Pages.app   
/Applications/iWork '09/Keynote.app  
/Applications/iWork '09/Numbers.app

但是在〜1-5%(10.8.2)中,我从mdfind

/Applications/iWork '09/Keynote.app  
/Applications/Mail.app  
/Applications/Messages.app  
/Applications/Utilities/Migration Assistant.app  
/Applications/Notes.app  
...  
/Library/Scripts/Printing Scripts/Convert To PDF.scpt  
/Library/Scripts/Printing Scripts/Convert To PostScript.scpt  
/Library/Scripts/Printing Scripts/Print Window With Subfolders.scpt  
/Library/Scripts/Printing Scripts/Print Window.scpt  
...  
/System/Library/Frameworks/GameKit.framework/Versions/A/Resources/GKNavbarBackButtonNormalLandscape.png  
/System/Library/Frameworks/GameKit.framework/Versions/A/Resources/GKNavbarBackButtonNormalLandscape@2x.png*  

------------ List goes on (tons of stuff) ------------  

我的mdfind查询有问题吗,或者有什么问题Spotlight database吗?

当然有可能:在 Spotlight 中引入10.7.510.8.2更新存在严重错误(检查https://discussions.apple.com/message/19863234#19863234

谢谢 :-)

4

1 回答 1

1

我不知道这里发生了什么。似乎 Spotlight 无法在 kMDItemFS* 上进行 OR 搜索?

我在 Finder 中手动创建了一个基于 OR 的 Spotlight 搜索 - 它失败了。

我下载了 HoudahSpot 并做了一个简单的“文件名”是 Pages.app 或文件名是 Keynote.app 查询并得到了相同的结果 - 超过 50,000

所以它看起来不仅仅是 mdfind 对查询的解释中的一个错误。

作为进一步的线索:名称中带有 FS 的任何项目 - 例如 kMDItemFSName - 都不会存储在 Spotlight 数据库中,因此查询需要更长的时间。

 mdfind "kMDItemCFBundleIdentifier == 'com.apple.iWork.Pages'  || kMDItemCFBundleIdentifier == 'com.apple.iWork.Keynote'"

在我的电脑上运行速度提高了大约 1000 倍。

在这个 5 岁左右的指南中,他们提到使用单个 | 对于 OR,但这对我在 10.8.2 http://macdevcenter.com/pub/a/mac/2006/01/04/mdfind.html上不起作用

于 2012-10-17T15:03:35.727 回答