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等等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可能产生安全隐患,一个不希望被其它用户搜索的,却可以被搜索,虽然可能不能存取,但是也是不安全(多数情况可能是使用习惯不好造成的)。总之,我们希望用户自己控制它的打开,部分打开,或者完全禁止。
使用第三方软件,比如Onyx/QuickSilver等
在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服务,运行这个命令。
下面的内容千万比出于好奇尝试,只有在你真正了解下面所说的内容之后再使用,否则后果自负。 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