# Mac OS X的Spotlight綜述
### 關于Spotlight的簡述
??? Spotlight是蘋果OS X系統里的亮點之一,它的快速查找,是Windows等其它系統所難望其項背的。特具有如下特點:
- ??? 它很快,相當快而且聰明。
- ??? 它存在好多地方,Finder,System menu, Open和Save對話框, Mail等等。
- ??? 它會自動為安裝的磁盤建立/更新索引,除了網絡和DVD磁盤等.
- ??? 它不僅搜索普通文件,還有聯系人,email,iTunes里的音樂,iPhoto里的照片,日歷中的事件,系統文件等等。
- ??? 它不會做的:隱藏文件(.hidden),不可見文件(invisible),在隱藏或者不可見文件夾里的文件等。
- ??? 除了對所有用戶目錄建立索引,還對/Applications,/Library/PreerencePanes /System/Library/PreerencePanes啟作用
- ??? 在Finder里面,Command+F來打開一個所有窗口
- ??? 可以對各種文件的多種屬性進行搜索,比如File lable,甚至是System Files等等。
- ??? 相關的系統進程: mds, mdimport, mdworker.
- ??? 即便是安全模式,它也是可以使用的。
- ??? 它支持插件,適合的插件用來搜索特定的數據庫里的項目。
- ??? 隨著文件的增多,它占用更多的磁盤空間,不過用戶覺察不到。
- ??? 其它的選擇,Find Any File, EasyFind, Find File等等
### 基本使用:
- Spotlight:
在系統菜單欄中,也就是屏幕的右上角的放大鏡按鈕,點擊它,或者使用快捷鍵(Command+Sapce),在下拉的Spotlight藍色搜索欄中輸入要查找的特征,它就會在下方列出相關的項目。我常用的是,輸入一個程序的名字,比如是計算器,我只輸入Cal,計算器就會稱謂第一個備選者,我按Enter回車,就可以啟動計算器程序了。
- Finder中:
還可以在Finder窗口中的工具欄的最右邊,也是搜索欄,輸入查找特征,系統也會隨時列出相關的項目。搜索時,文件列表區域的頂端,會出現一個Search的表頭,可以方便切換搜索的范圍-當前電腦還是啟動磁盤,和查找根據-是查找內容相關還是單單文件名相關。和Spotlight不同的是,你可以進行高級查找,也就是添加/使用各種的搜索條件。只要點擊Search條的最有邊的“+”小按鈕,下方又出現一條,這里你可以添加一個一個的條件,最左邊是條件的類型,最常用的是文件類型,修改時間,創建時間,上次打開時間,后面就是具體條件,隨時輸入,下方列表隨時更新,非常方便。

- Save/Open
還有在你保存/打開文件的時候,也可以使用上面Finder的搜索方法。具體操作和上邊類似。
- 改變搜索結果順序:
進入System Preerences的Spotlight,拖動每一項就可以改變順序,去除選擇的話,這一類的結果就不會出現在搜索結果中。
### 基本的排錯:
??? 在一般的情況下,它工作得相當得文件,但是在升級安裝或者是被自己多次修改過的系統中,會出現Spotlight不工作的問題。解決問題可以遵循下面的步驟來嘗試,嘗試每一步之后,都需要等待一段時間,可能時數秒,也可能是一兩分鐘不等,過長的時間等待一般不需要。
??? 1: 重新啟動電腦
??? ??? 這個總是第一個想到的
??? 2: 刪除com.apple.spotlight.plist文件
??? ??? 這個文件在擋墻用戶個人文件家的~/Library/Preferences文件夾中
??? 3: 進入在System Preferences中的Spotligh的Privacy中,把系統磁盤添加到列表中,等候幾秒中,然后再從中刪除。一般的情況到此為止,都可以解決了。
??? 4: 殺掉SystemUIServer進程
??? ??? 進入在Utilities文件夾中的Activity Monitor中,找到并選擇"SystemUIServer",點"Quit Process"。等一會兒,系統菜單條會重新出現。
??? 5: 命令行
??? ??? sudo find / -iname '.Spotlight-V100' -type d -maxdepth 3 -print0 | xargs -0 -t -n1 sudo rm -rf
??? ??? sudo mdutil -E /
??? 6: 再有就是詳細閱讀后面的解讀,自己嘗試各個方式。
### 停止它建立索引:
??????? 雖然它很好用也有很多人喜歡它,你依然可能出于某種想法希望停止它,無論是臨時的還是永久的。比如有的嫌它太占用資源,導致系統速度下降;有的說它崩潰,還不如沒有。還有一種情況,可能你真的希望臨時禁止它,或者禁止部分;還有的時候Spotlight可能產生安全隱患,一個不希望被其它用戶搜索的,卻可以被搜索,雖然可能不能存取,但是也是不安全(多數情況可能是使用習慣不好造成的)。總之,我們希望用戶自己控制它的打開,部分打開,或者完全禁止。
### 命令行:
1. hostconfig
如果你運行的是Mac OS X 10.5雪豹以前的系統,那么有一種方法可以禁止它。就是編輯/etc/hostconfig里面,修改SPOTLIGHT=-No-.
重新打開也簡單,改成默認的-YES-,重新啟動系統之后就可以。不過這個方法需要你有管理員權限。
1. 使用GUI
在System Preferences里的Spotlight,在Privacy標簽中,把本機的硬盤符,拖到列表中,系統提示就確認,之后,Spotlight就不管用了。
***版權信息**: 本著開放交流的原則歡迎轉載,除非明確聲明"謝絕轉載"等字樣. **所有文章/圖片/代碼(除轉載和翻譯),版權均屬文章作者**.
轉載請遵守下面規則:
?1)保持文章的完整性; 2)不得以盈利為目的; 3)完整標注文章作者[Tony Liu@[中國在線教育](http://blog.csdn.net/afatgoat)]和文章中標注的所有版權信息。
其它事宜,如:需要商業用途或以盈利為目的的、或者部分轉載的等等,請與本作者聯系: TonyLiu2CA@yahoo.com*
如果禁止了當前的系統硬盤,Spotlight和Finder中都無法使用搜索功能了,在搜索欄中無法輸入。
當然可以禁止查找特定的目錄,同樣的方法,拖動到列表里就好。一旦一個目錄或者磁盤被拖放在里邊,Spolight會立刻停止對他建立索引,而且也無法再從Finder找到里面的文件,雖然已經儲存的索引還依然存在于系統中。
一旦一個目錄被添加到Privacy里面,在搜索里面就不會出現在搜索結果中。
在以前的系統里可能會出現問題,比如Spotlight正在建立索引的時候,它可能產生一個mds-crash-state的文件,這樣即使你把它從Privacy里面去除,依然無法對他重新建立索引。解決的辦法是,或者卸載這個磁盤后再安裝上,或者重新啟動系統,或者刪除這個文件(.Spotlight-V100目錄中),或者運行重新索引命令: sudo mdutil -E /path_to_volume
要想打開,就把它從列表中刪除,刪除后,Spotlight會自動更新,這個速度根據你的系統和文件多少等,可能會持續數分鐘,或者更長。
1. sudo mdutil -i off /path_to_volume
這個命令可以應用于一個磁盤(分區),不能應用于一個目錄。而這個被禁止的磁盤不會出現在Spotlight的Privacy列表里面。
如果是sudo mdutil -i off /
也就是對整個啟動磁盤禁止索引,運行這個命令的結果:系統不會啟動mds來對磁盤進行后臺索引,但是在Finder中依然可以使用Find功能,只不過這個功能就如同Windows里面的普通搜索類似了,速度慢,因為沒有了可以使用的數據索引,和命令行下的Find命令類似,只不過它不查找程序或者各種包里面的內容。比較上面在GUI下的Pravicy的禁止,里面有些差異。這個功能有的時候可能還是用得到的,比如你不希望系統隨時建立索引,但是同時還要保留在Finder里面查找文件的功能。
### 其它方式:
?????使用第三方軟件,比如Onyx/QuickSilver等
### 命令行和GUI的關系:
??? 在Mac OS X 10.6以前的版本,命令行和System Preferences里的Spotlight是不太兼容的兩個部分。不過這種情況已經得到改善
??? 比如,在Spotlight里面把一個目錄添加到Privacy里面了,命令行依然可以運行 -i off或者-i on,但是在雪豹中,已經是不行了,當你使用-i on的時候,它會提示 Indexing and searching disabled.
??? 在比如,當你把一個目錄添加到Privacy里面后,以前的版本可能不會立刻刪除索引數據,而現在的版本會立刻刪除。
??? 前面也說了,在命令行禁止索引,在GUI中依然可以搜索文件。
### 其它命令
??? sudo mdutil -E /
??? 重新建立系統磁盤的索引。如果在GUI中Pravicy里面被禁止了,那么這條命令不起作用。
??? sudo launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
??? 停止mds服務。下次系統重新啟動后,mds服務會重新啟動。
??? sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
??? 停止mds服務。下次系統重新啟動后,mds服務都不會重新啟動。
??? sudo launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
??? 停止之后,如果需要立刻啟動mds服務,運行這個命令。
?
### Under the Hood:
??? 下面的內容千萬比出于好奇嘗試,只有在你真正了解下面所說的內容之后再使用,否則后果自負。
??? Spotlight的索引建立在,各個磁盤的目錄下面的.Spotlight隱藏目錄中。
??? 在系統偏好的Spotlight的Privacy中的列表內容,存放在叫做Exclusions.plist的文件中。
??? 而搜索結果的順序選項,則在當前用戶的的個人文件夾中的com.apple.spotlight.plist文件中定義。
??? 對于希望不使用GUI方式操作Privacy的用戶,就需要使用命令行了,下面就是一個例子。
# Start
defaults delete /.Spotlight-V100/Exclusions
defaults write /.Spotlight-V100/Exclusions? Exclusions -array
launchctl unload /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
launchctl load /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
# End
??? 還有一個徹底的方式:
# Start
??? sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
??? mkdir /System/Library/LaunchAgnets.backup
??? sudo mv /System/Library/LaunchAgnets/com.apple.metadata_mdwrite /System/Library/LaunchAgnets
??? cd /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/
??? tar -cvf mdworkstuff.tar ./ #(saves all md* to a tarball in case you ever want it back)
??? then :
??? rm mdworker
??? rm mdworker32
??? rm mds
??? rm mdwrite
# End
?
?
Tony Liu in Calgary
2011, 03, 03
-18 Windchill -35
- 前言
- Mac OS X:如何將個人文件夾從默認卷移到其他卷(適合OSX10.5 Leopard)
- Mac OS X:Finder菜單中的Connect to Server選項禁止和打開
- Mac OS X: 蘋果機支持的分區表類型及問題解決
- Mac OS X: 偏好Preferences基礎(1)
- Mac OS X: 如何變更Office for Mac的注冊碼
- Mac OS X: 禁止/防止網絡用戶復制app程序到桌面
- Mac OS X: 用戶帳戶的選擇
- Mac OS X: 實用腳本程序(bash scripts)系列
- Mac OS X: 共享iPhoto圖片
- Mac OS X: 實用腳本程序(bash scripts)系列-2
- Mac OS X: 實用腳本程序(bash scripts)系列-3
- Mac OS X: 實用腳本程序(bash scripts)系列-4
- Mac OS X: 實用腳本程序(bash scripts)系列-5
- Mac OS X: 實用腳本程序(bash scripts)系列-6
- Mac OS X:升級rsync和同步應用實例
- Mac OS X: XAMP在Mac上的實現
- Mac OS X瘦身多法
- Mac OS X 10.5快速系統部署實踐-計劃(2) v1
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(1) v1
- Mac OS X數據備份方案一例
- Mac OS X數據備份方案一例(2)
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(2) v1
- Mac OS X: 打印系統治療
- Mac OS X:禁止崩潰報告
- Mac OS X:Snow Leopard的幾個改動(管理員相關)
- Mac OS X排錯:雪豹的最新更新Airport可能不支持無線802.11n網絡
- Mac OS X:雪豹內置支持讀寫NTFS卷
- Mac OS X:定制生成新用戶的程序包
- Mac OS X:在Windows里面使用命令行設置啟動系統
- Mac OS X: 實用腳本程序(bash scripts)系列-7
- Mac OS X:一種從APP中獲得PKG的方法
- Mac OS X: bash腳本實現添加無線SSID(Update2009-10-09)
- Mac OS X: 實用腳本程序(bash scripts)系列-8
- Mac OS X 10.5快速系統部署實踐-制作核心系統鏡像(4) v1
- Mac OS X: 徹底刪除GeekTool(bash腳本)
- Mac OS X: 實用腳本程序(bash scripts)系列-9
- 把你的Leopard變成Mac OS X的系統發布服務器(1)
- 把你的Leopard變成Mac OS X的系統發布服務器(2)
- 把你的Leopard變成Mac OS X的系統發布服務器(3)
- Mac OS X: 訪問控制遠程CUPS服務
- Mac & Win混合平臺訪問和工具
- Mac OS X: DeployStudio更新v1.0rc16
- Mac: 想當Apple菜鳥不容易(1)
- Mac: 想當 Apple菜鳥不容易(2)
- Mac: 想當 Apple菜鳥不容易(3)
- Mac: 想當 Apple菜鳥不容易(4完)
- Mac電腦上處理攝像機上的存儲內容
- Mac OS X: Google自動更新程序的卸載
- 雪豹系統和SMB不兼容的問題的解決匯總
- Mac OS X: 實用腳本程序(bash scripts)系列-10
- Mac OS X:MagicPrefs介紹
- Mac OS X: 系統部署后程序安裝的用戶提示
- Mac OS X:開啟單程序模式
- Mac OS X: 在腳本里關閉Airport
- Mac筆記本電池:十點建議和其它
- Mac OS X: Launchd執行程序的一個例子
- Mac OS X:修改SMART Utility期限限制
- Mac OS X:網絡用戶環境個性配置實例
- Mac OS X:強制退出CD/DVD盤
- Mac OS X: launchd plist在線編輯器
- Mac OS X: 實用腳本程序(bash scripts)系列-11
- Mac OS X: 實用腳本程序(bash scripts)系列-12
- Mac: 卸載Safari 5.0.2
- Mac OS X: 實用腳本程序(bash scripts)系列-13
- Mac OS X: 文件圖標制作和變更(Resource Fork)
- Mac OS X 10.6.6更新之后NTFS只讀的解決
- Mac: 網絡用戶遇到Adobe Reader 9.x/10.x異常退出的解決
- Mac OS X: airport命令的參數
- Mac OS X的Spotlight綜述
- Mac OS X:AFP和SMB共享配置詳細配置
- Mac OS X:詳細解讀Munki和應用
- Mac OS X:顯示/設置分辨率的命令(源程序)
- Mac OS X: 是否升級到Lion?
- OSX: 禁止Flash Player 10.3自動更新
- OSX腳本:禁止系統自動添加AppStore圖標到用戶Dock上
- 獅子GM版本的安裝
- OS X Lion獅子安裝盤的初步研究
- OS X Lion獅子的恢復盤的刪除二法
- OSX: Finder的側邊欄(Sidebar)不顯示已裝載的網絡共享
- OSX:隱藏文件或文件夾
- OS X: 實用腳本程序(bash scripts)系列-13
- OS X: 實用腳本程序(bash scripts)系列-14
- OSX:Lion支持登錄窗口的Policy Banner
- OSX: 讓獅子說中文