比如说,我的电脑里有很多文档,我只想找到一个包含某些特定单词的文档。我甚至不记得这个文档的类型或名称。
我尝试使用 Unity(文档和文件夹)镜头实现这一点,但 Ubuntu 似乎只查找名称(文件和文件夹的名称),而不查找文档内部。
请告知我是否可以使用 Ubuntu 实现我的目标。
答案1
我建议安装并使用雷可尔镜片:
Recoll 是一款全文搜索桌面工具,可索引多种文件格式的内容,包括 OpenOffice、MS Office、PostScript、MP3 和其他音频文件、JPEG 等。除了常规搜索外,Recoll 还允许您执行一些高级操作,例如搜索作者、文件大小、文件格式以及“AND”或“OR”等运算符。
Unity Recoll Lens 可让您从 Dash 使用 Recoll,而无需打开任何其他 GUI。该 Lens 附带一些过滤器,如文本、电子表格、演示文稿、媒体或消息,但对于更高级的搜索,您必须手动输入 Recoll 搜索查询。示例:author:"john doe" metalica OR megadeth /2007(2007 年或更早版本的所有文档)dir:/path/to/dir(过滤来自 /path/to/dir 目录的内容)。
答案2
如果文本存储为纯文本在文档文件中(无论文件本身是否完全由纯文本组成),那么您可以使用递归从命令行搜索它grep
。这不需要先建立索引,但搜索所有文件需要很长时间,因此如果您需要对整个磁盘执行多次此操作,则应使用索引搜索实用程序(例如这个答案)。
打开终端窗口(Ctrl++ Alt)T。
将目录更改为要搜索的目录的顶部。例如,要搜索主目录中的所有内容,请执行
cd ~
。要搜索计算机上的所有内容,请执行cd /
。要搜索名为 DocDrive 的外部驱动器中的所有内容,请执行cd /media/DocDrive
。如果目录名称中有空格,请将其括在引号中(例如,cd '/media/Documents Drive'
。运行递归
grep
如下:grep -Rs 'word or phrase you are looking for' .
或者,您可以跳过步骤 2,而不用cd
转到您想要查看的文件夹,而是将.
步骤 3 中的替换为您想要查看的文件夹的名称。
如果你想搜索所有文件,包括那些你通常无权访问的文件,你可以grep
运行root
和sudo
:
sudo grep -Rs 'word or phrase you are looking for' .