2012-10-03 2 views
2

봐 : 그것은에 문제가mdfind 쿼리 이상한 행동이 mdfind 쿼리에서

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

있습니까? 아마도 논리적 인 OR - ||은 Apple이 mdfind 매뉴얼 페이지에 문서화하지 않았습니까?

99 %의 경우 mdfind은 각 iwork 앱의 파일 경로/위치가 3 개 (또는 설치되지 않은 경우는 없음)를 반환합니다.

/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/[email protected]* 

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

mdfind 쿼리에 문제가, 또는 Spotlight database에 문제가?

은 확실히 가능성이 : 10.7.510.8.2 업데이트와 함께 소개 스포트 라이트에 심각한 버그가 있습니다 ( https://discussions.apple.com/message/19863234#19863234 확인) 내가 여기에 무슨 일이 일어나고 있는지 모르는

+0

어제는 재현 할 수 없었지만 응용 프로그램 이후에는 약 300000 개의 파일이 나열되었습니다. (저는 10.8.2에 있습니다.) – user495470

+0

10.7.5 스포트 라이트 문제 중 적어도 하나가 수정되었습니다 - http://support.apple.com/kb/DL1599 – studgeek

+0

이것은 내가 알 수있는 한 버그입니다. 10.7.5 및 10.8.2에서 발생하지만 완전히 업데이트되었지만 10.6.8에서는 발생하지 않습니다. –

답변

1

:-)

감사합니다. Spotlight가 kMDItemFS *에서 OR 검색을 위해 부러진 것 같습니다.

필자는 Finder에서 OR 기반 스포트라이트 검색을 만들었습니다. 실패합니다. 그래서 mdfind의 해석은 단순히 버그처럼 보이지 않는

50,000 이상 -

나는 HoudahSpot을 다운로드하고 간단한 '파일 이름'Pages.app 또는 파일 이름이 Keynote.app 쿼리입니다를 만들어 같은 결과를 얻었다 쿼리의

추가 단서로 : 이름이 FS 인 모든 항목 (예 : kMDItemFSName)은 스포트라이트 데이터베이스에 저장되지 않으므로 쿼리 시간이 오래 걸릴 수 있습니다.

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

+0

FS 아이템의 성능 비용에 +1. 파일 이름에도 kMDItemDisplayName을 사용할 수 있습니다. https://developer.apple.com/library/mac/#documentation/Carbon/Reference/MDItemRef/Reference/reference.html – studgeek

+0

예, kMDItemDisplayName을 사용할 수 있지만 파일 이름과 근본적으로 다를 수 있습니다. Pages.app의 페이지 이름은 Pages이고 ".... Library/Mail /.../ 248747.emlx의 표시 이름은"Re : Purchase " –

+0

" 이름이 스포트라이트 데이터베이스에 저장되지 않았습니다. "문서화되어 있습니까? – SG1

관련 문제