文章目錄
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可能產生安全隱患,一個不希望被其它使用者搜尋的,卻可以被搜尋,雖然可能不能存取,但是也是不安全(多數情況可能是使用習慣不好造成的)。總之,我們希望使用者自己控制它的開啟,部分開啟,或者完全禁止。
命令列:
- hostconfig
如果你啟動並執行是Mac OS X 10.5雪豹以前的系統,那麼有一種方法可以禁止它。就是編輯/etc/hostconfig裡面,修改SPOTLIGHT=-No-.
重新開啟也簡單,改成預設的-YES-,重新啟動系統之後就可以。不過這個方法需要你有管理員權限。
- 使用GUI
在System Preferences裡的Spotlight,在Privacy標籤中,把原生硬碟符,拖到列表中,系統提示就確認,之後,Spotlight就不管用了。著作權資訊
: 本著開放交流的原則歡迎轉載,除非明確聲明"謝絕轉載"等字樣.
所有文章/圖片/代碼(除轉載和翻譯),著作權均屬文章作者
.
轉載請遵守下面規則:
1)保持文章的完整性; 2)不得以盈利為目的; 3)完整標註文章作者[Tony Liu@中國線上教育
]和文章中標註的所有著作權資訊。
其它事宜,如:需要商業用途或以盈利為目的的、或者部分轉載的等等,請與本作者聯絡: TonyLiu2CA@yahoo.com
如果禁止了當前的系統硬碟,Spotlight和Finder中都無法使用搜尋功能了,在搜尋欄中無法輸入。
當然可以禁止尋找特定的目錄,同樣的方法,拖動到列表裡就好。一旦一個目錄或者磁碟被拖放在裡邊,Spolight會立刻停止對他建立索引,而且也無法再從Finder找到裡面的檔案,雖然已經儲存的索引還依然存在於系統中。
一旦一個目錄被添加到Privacy裡面,在搜尋裡面就不會出現在搜尋結果中。
在以前的系統裡可能會出現問題,比如Spotlight正在建立索引的時候,它可能產生一個mds-crash-state的檔案,這樣即使你把它從Privacy裡面去除,依然無法對他重建立立索引。解決的辦法是,或者卸載這個磁碟後再安裝上,或者重新啟動系統,或者刪除這個檔案(.Spotlight-V100目錄中),或者運行重新索引命令: sudo mdutil -E /path_to_volume
要想開啟,就把它從列表中刪除,刪除後,Spotlight會自動更新,這個速度根據你的系統和檔案多少等,可能會持續數分鐘,或者更長。
- 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