烹饪 Linux - 桌面丛林探险

作者:Marcel Gagné

弗朗索瓦,这确实让事情变得困难。当我让你找到上个月的葡萄酒订单时,你告诉我它在你的磁盘上的某个地方,但我没想到它会以这种方式“在你的磁盘上的某个地方”。这可能是我见过的最混乱的家目录。每个文档都在同一个文件夹中,而且所有文件的命名都非常隐晦。你在想什么,我的朋友

什么? 嗯,当然有办法找到它。如果该文档仍然存在于你的磁盘上的某个地方,我们会找到它的。我们只需要使用正确的工具。不过,稍后再说——我们的客人们马上就要到了,而且……太晚了,弗朗索瓦,他们已经到了!欢迎大家来到 Chez Marcel,这里是精美 Linux 美食和精致葡萄酒的家园。请坐下,让自己感到舒适。弗朗索瓦会 立即 为你们取酒。弗朗索瓦,去酒窖的东翼,把我们一直在品尝,呃,我的意思是,进行质量控制的那瓶 2001 年努伊圣乔治黑皮诺拿回来。快点!

各位 我的朋友们,碰巧的是,这瓶葡萄酒代表了弗朗索瓦电脑上某个文档中丢失的订单的一部分。问题是,他不记得是哪个文档了。我们需要做的,是为他设置一个桌面搜索引擎。幸运的是,这正好是今晚菜单的基础,所以我们所有人都会从我忠实的侍者缺乏组织性中获益。

各位 我的朋友们,最初的桌面搜索引擎是 Linux 从一开始就存在的东西,那就是 find 命令。这是一个非常强大的工具,在这个尖端图形桌面时代,它很容易被忽视。在其最基本的形式中,find 的用法如下

find starting_dir [options]

其中一个选项是 -print,只有当你想要看到这个命令的任何类型的输出时,它才有意义。你可以很容易地通过从顶部开始并递归列出磁盘来获得系统上每个文件的列表

find / -print

当然,搜索某些东西更有意义,例如,你磁盘上所有 MP3 类型的音乐文件。因为你知道文件以 .mp3 扩展名结尾,所以你可以使用它来搜索

find / -name "*.mp3" -print

这对于定位你很久没看过的旧的大文件也很有用。也许是时候对那些旧文件进行一些归档了,但是你如何只找到那些文件呢?假设你想查找过去 12 个月内未修改(这是 -mtime 参数)或访问(-atime 参数)的任何内容。-o 选项是这个等式中的“或”

find /home/marcel -size +1024 \( -mtime +365 -o -atime +365 \) -ls

如果你好奇,括号前面的反斜杠是转义字符;它们在那里是为了确保 shell 不会以你不希望的方式解释它们——在这种情况下,是第二行上的左右括号。前面的命令也搜索大于 500KB 的文件。这就是-size +1024的意思,因为 1024 指的是 512 字节的块。-ls在命令的末尾告诉系统对它找到的任何符合搜索条件的文件进行详细列表。到目前为止还不错?

find 命令表面上相当简单易用,但它也有许多命令行选项,并且(正如你所看到的)将搜索结果传递给其他命令的有趣方式,以便可以缩小或微调结果。了解 find 是一个好主意,但也有一些更友好的替代方案。

外面很多人都在 KDE 或 GNOME 的图形世界中长大,因此在这些环境中分别创建了桌面工具。即便如此,我的经验表明,对于许多用户来说,这些优秀的工具与 find 一样容易被忽视。现在让我们来看看这些工具。

让我们从 KDE 下搜索搜索工具开始。单击应用程序启动器,并查找标记为“查找”的子菜单。“查找”菜单有两个选项,一个用于文件,一个用于 Web 搜索(默认情况下,在 Google 网站上启动 Konqueror)。你也可以使用 Alt-F2 快速启动(程序名称kfind)来启动文件搜索工具。当应用程序启动时,“查找文件/文件夹”对话框出现。它包含三个不同的选项卡,每个选项卡都旨在帮助你找到你需要的信息。它们分别标记为“名称/位置”、“内容”和“属性”。

在“名称/位置”选项卡下,指定起始文件夹,可以通过手动输入或单击“浏览器”按钮并使用 KDE 文件导航器导航到该文件夹。还有一个标记为“命名”的字段,你可以在其中使用 Linux 元字符输入文件名的一部分。例如,如果我想找到标题中任何位置包含“Cooking”的所有文件,我会输入*cooking*。默认情况下,这是一个不区分大小写的搜索,因此在搜索结果方面,大写和小写无关紧要。但是,你可以通过单击“区分大小写搜索”复选框来覆盖此行为。

在“内容”选项卡下,真正的操作发生了。一般来说,我没有通过名称定位文件的问题。真正的问题是内容。你的数百个文档中,哪个文档包含对特定单词或短语的引用,这比哪个文档的名称中包含特定单词更难搜索。“内容”选项卡允许你输入搜索文本(默认情况下,再次不区分大小写)、正则表达式搜索等等。你甚至可以指定 Kfind 搜索二进制文件,而不仅仅是文档(图 1)。还有一个元信息搜索功能,用于 MP3 文件等包含嵌入式信息(例如标题和艺术家)的文件。

Cooking with Linux - Trekking through the Desktop Jungle

图 1. KFind 使 Marcel 可以轻松定位所有提到“wine”的专栏文章。

最后,“属性”选项卡提供了一种基于创建或修改日期、所有权等搜索文件或文件夹的方法。

同样,GNOME 用户可以使用 GNOME 搜索工具(程序名称gnome-search-tool),这是一个类似的程序,允许你根据文件名、文件内容(文本搜索)和日期进行搜索。在 GNOME “位置”菜单中选择“搜索文件”(在这个例子中我运行的是 2.10),这将弹出文件查找对话框(图 2)。

Cooking with Linux - Trekking through the Desktop Jungle

图 2. GNOME 搜索工具允许你按名称以及文件中的文本进行搜索。

当对话框首次出现时,没有太多内容可见。默认设置是按名称搜索文件,你可以在“名称包含”字段中输入名称。下面是你搜索的起始文件夹,默认为你的主目录。要获得 GNOME 搜索工具的全部功能,请单击标签为“显示更多选项”的箭头。将出现一个新字段,你可以通过该字段指定文件本身中的一些文本。

最后,在文本搜索字段的正下方,是另一个可能非常复杂的选项。一个标记为“可用选项”的下拉框包含大小、日期和所有权搜索条件,可以应用这些条件来进一步缩小你的搜索结果。

如果你一直在关注任何方式的搜索技术,你就会知道最近关于桌面搜索引擎有很多令人兴奋的事情——想想你桌面的 Google。事实上,Google 确实提供了这样一个工具,但不幸的是,仅适用于非 Linux 操作系统。但是,这并不是说 Linux 没有桌面搜索工具。

其中一个工具是 Roberto Cappuccio 的 Kat,这是一个桌面搜索引擎和索引工具,它可以轻松快速地在各种文档格式(例如,PDF、OpenOffice.org、KWord 等)中进行全文搜索。你也可以使用缩略图等搜索图像。

Kat 网站(请参阅在线资源)为许多发行版提供了二进制软件包,因此你可能不需要从源代码构建。如果你需要这样做,这个过程只不过是经典的提取和构建五步法。在先决条件方面,你需要 SQLite 数据库及其开发库。

要使用 Kat,只需启动程序(名称kat),就会出现一个简单的三窗格窗口,你将在其中完成你的工作和搜索。第一步是创建一个目录。为此,单击菜单栏上的“文件”,然后选择“新建”。

创建新目录时,会出现一个四选项卡窗口。第一个选项卡标记为“目录”,你可以在其中输入起始目录、目录名称和其他标识信息。在第二个选项卡(标记为“元数据”)上,你将看到 Kat 可用于索引的各种元数据引擎的列表。你可以删除不同的格式,但最有可能的是,这将保持原样(图 3)。“全文”选项卡也是如此。在“缩略图”下,你可以选择索引过程中创建的缩略图的大小。

Cooking with Linux - Trekking through the Desktop Jungle

图 3. 使用 kfile 钩子,Kat 几乎可以索引任何东西。

状态窗口让你了解扫描的文件和文件夹的数量,以及集合的大小(图 4)。

Cooking with Linux - Trekking through the Desktop Jungle

图 4. 当 Kat 创建新目录时,程序会报告有关该过程的统计信息。

这引出了这种工具的一个主要缺点。如果你要为其创建目录的文件夹很大,这可能需要惊人的时间。做好准备,或者将你的目录限制在合理的文件集合中。我尝试索引我自己的整个主目录,数据量接近 6.6 GB——我只能说,那是个错误。

一旦目录被创建,查找信息就变得非常快。只需单击最右侧的搜索图标(放大镜),输入你的搜索词,Kat 几乎立即返回搜索结果(图 5)。

Cooking with Linux - Trekking through the Desktop Jungle

图 5. 虽然初始索引可能需要一些时间,但 Kat 搜索速度非常快。

各位 我的朋友们,根据墙上的时钟,似乎已经到了打烊时间。在我们离开桌面搜索引擎这个话题之前,我想提及另一个软件包,它的名字很友好,像小狗一样,叫做 Beagle。Beagle 构建在 Mono(开源 .Net 实现)之上,并且需要启用 inotify 的内核。在较新的发行版中,这两者并不罕见。Beagle 也显示出希望,因为它非常快,并且在后台静默工作,密切关注你告诉它的内容,同时自动更新其信息目录。不幸的是,Beagle 在很大程度上是 alpha 代码,还没有完全准备好投入使用,正如他们所说的那样(尽管它包含在新的 SUSE Linux Professional 9.3 中)。尽管如此,Beagle 是一种值得关注的工具,我已将链接包含在在线资源中。

各位 我的朋友们,请举起你们的酒杯,让我们一起为彼此的健康干杯。祝您健康!胃口好!

本文资源: /article/8456

Marcel Gagné 是一位获奖作家,居住在安大略省密西沙加市。他是 Moving to the Linux Business Desktop(ISBN 0-131-42192-1)的作者,这是他在 Addison-Wesley 出版的第三本书。他还定期在电视节目中露面,担任 Call for Help 的 Linux 专家。Marcel 还是一名飞行员和前 40 强唱片骑师。他创作科幻小说和奇幻小说,并能折出相当不错的折纸霸王龙。你可以通过电子邮件 mggagne@salmar.com 与他联系。你可以在他的网站 www.marcelgagne.com 上找到很多其他东西(包括很棒的葡萄酒链接)。

加载 Disqus 评论