使用终端命令 改进Spotlight索引

Published on 2009 - 05 - 20

即使Spotlight已经很配合地在你的Mac上工作,但你还是需要改进它使得它能更好地运行.大多数的Mac Users使用SpotLight来搜寻文件,得到的结果却并不是很直观地告诉你具体位置.也许你可以选择外部辅助工具如SpotInside来增强它的搜索,但这一次,我们使用的是终端(还不知道怎么使用终端?).下面的一些命令可设置被隐藏的Spotlight命令,从而提升本地搜索的体验.

手动添加文件到Spotlight的索引结果中:

理论上,Spotlight会主动添加被创建的每一个文件,从而被用户索引到.然而一些出现错误的或者特殊文件(被卸载却未完全)不会被显示.这时我们需要手动将它们添加到Spotlight中.

打开应用程式---实用工具---打开终端(Terminal);

键入mdimport+空格;

将需要被索引到的文件直接拖曳进入终端,它会自动填上文件所在路径;如图:

当然如果自己知道路径则可手动填入.这样,文件就会被Spotlight手动索引.

手动添加文件夹到Spotlight的索引结果中:

这种添加的方法同上,但若你使用的是Mac OS X 10.4 Tiger或者更早的作业系统,终端的写法会有所不同.

这时你需要用到的命令是mdimport -f.具体的命令是_mdimport -f /System_,因为该文件夹默认不被索引.

直接在终端(Terminal)中进行索引:

由于Spotlight的工作效率很高,因此使用这种方法只有在你正在终端中操作时,或者你不满足Spotlight的搜索结果才可能会用得到,(没人会自我麻烦地去手动打开再键入命令吧).

键入mdfind+空格+X.X替换成你想搜索的东西.比如我想搜索Tears of the Saints(歌名),如图:

more

如果想限制文件夹搜索,即在指定的文件夹中索引,需要用到的命令是mdfind -onlyin ~/Desktop X,这表示的是仅仅在桌面文件夹中搜索X文件.

如果想进行即时搜索,比如你刚创建了一个文件,使用mdfind -live X命令.综上所述,如图:

(图片来源:via)

重新索引整个磁盘:

当你的Spotlight遇到问题时,你需要重新检索整个硬盘.键入的命令是sudo mdutil -E /.会需要你的系统密码.出现"Indexing enabled. "字符后即完成.

重新检索指定的目标目录命令:sudo mdutil -E /Volumes/OtherHardDrive.替换成自己需要的.

重新索引特殊的文件格式:

Spotlight索引到的结果都是它承认的文件类型,内置使用mdimporter插件检阅内容.而每一个格式都有自己的插件,它们安放在Macintosh HD/System/Library/Spotlight 或者 Macintosh HD/Library/Spotlight文件夹中.找到它们并双击之,你会得到如图所示:

同意义的操作在终端中实现的命令是:mdimport -r,例如键入_mdimport -r /System/Library/Spotlight/QuickTime.mdimporter_就会达到同样的效果.

在Spotlight索引结果中添加新文件格式:

Spotlight的伟大之处在于几乎能检索任何格式的文件,比如PDF文档,比如联络人中的电话号码等等.许多的第三方应用程式会自己提供插件以融合Spotlight检索的青睐,没办法,若你不配合则不会被检索到.

各类插件参阅Apple Spotlight Plugins页面.

制作/修改Spotlight索引的源代码:

上述的那些方法是否还不足以另你过瘾?那么我们来直接改了Spotlight的源代码吧.Apple的开发者们利用Apple's developer tools修改前面提到过的mdimporter插件.但是,很多用户并不情愿去下载这么个庞然大物,然后安装...跟我来.

进入Macintosh HD/System/Library/Spotlight文件夹,找到RichText.mdimporter文件.右击显示包内容,打开位于Content文件夹中的info.plist文件并修改,在靠近顶部的字符里可能会看到如下字符串:

<string>public.rtf**</string>

<string>public.html**</string>

<string>public.xml**</string>

<string>public.plain-text**</string>

<string>com.apple.traditional-mac-plain-text**</string>

<string>com.apple.rtfd**</string>

<string>com.apple.webarchive**</string>

<string>org.oasis-open.opendocument.text**</string>

<string>org.openxmlformats.wordprocessingml.document</string>
用户可以在任意一行的末尾处添加自己需要的特殊格式,如:
<string>public.c-header
</string>

<string>public.c-plus-plus-header**</string>

<string>public.c-source**</string>

<string>public.objective-c-source**</string>

<string>public.c-plus-plus-source**</string>

<string>public.objective-c-plus-plus-source**</string>

<string>com.sun.java-source**</string>

<string>public.perl-script**</string>

<string>public.python-script**</string>

<string>public.csh-script**</string>

<string>public.shell-script**</string>

<string>public.ruby-script**</string>

<string>public.php-script**</string>

<string>com.netscape.javascript-source**</string>
修改完毕后,再次双击该mdimporter文件执行"重新索引"即可.

若你还需要其它一些格式,在终端中执行mdimport -n -d1 somefile.ext,并写入info.plist.

去除Spotlight中的索引结果:

说了那么多往往都是如何配合Spotlight,并添加进入.有时我们也并不需要那么多的索引结果.

操作很简单,进入"系统偏好设置.app"---Spotlight选项---隐私.使用(+)按钮或者直接将文件与文件夹拖曳进入窗口就完成了不被Spotlight索引了.

文章翻译自Mac OSX Tips:Terminal commands for improving Spotlight.文章禁止转载,引用即可.文章内容及图片若未注明则皆归属原作者所有.

Comments
Write a Comment