看看这个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
是否有问题?
当然有可能:通过10.7.5
和10.8.2
更新引入Spotlight中存在严重错误(请检查https://discussions.apple.com/message/19863234#19863234)
谢谢:-)
答案 0 :(得分:1)
我不知道这里发生了什么。似乎Spotlight在OR搜索kMDItemFS *时被破坏了?
我在Finder中创建了一个基于OR的Spotlight搜索 - 它失败了。
我下载了HoudahSpot并制作了一个简单的'Filename'是Pages.app或Filename是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