在 Linux 上搜索压缩 gzip 存档文件的内容
使用 gzip 压缩的存档具有 .tar.gz
或 .tgz
文件扩展名。从这些文件中提取内容很容易,但如果您只需要某个文件怎么办?如果您只想查找几个文件,那么从存档中提取数百或数千个文件没有多大意义。
幸运的是,我们可以利用 Linux 命令行甚至 GUI 存档管理器来搜索 gzip 压缩存档的内容。一旦我们确定了想要的文件,就可以单独提取文件,而不是提取每个文件。
在本指南中,我们将展示如何从命令行和 GUI 中搜索一个或多个 gzip 存档中的特定文件。
在本教程中您将学习:
如何通过命令行搜索压缩 gzip 存档的内容
如何通过 GUI 搜索压缩 gzip 存档的内容
如何搜索多个gzip压缩包的内容
如何从 gzip 存档中提取特定文件
在 Linux 上的压缩存档中搜索两种不同的文件名模式
通过命令行搜索 gzip 存档的内容
查看下面的一些命令行示例,并在您自己的系统上尝试它们,以了解如何在 gzip 存档中搜索文件。如果您更喜欢使用 GUI,则可以跳到本文的下一部分。
要列出压缩 gzip 存档(或任何类型的 tar 文件)的所有内容,请在 tar 中使用
-t
选项。我们还需要-f
选项,因为我们将在之后指定 tar 文件的名称。这将返回存档内所有文件和目录的完整列表。$ tar -tf Linux-ISOs.tar.gz
要获取有关文件的更多详细信息,例如大小、权限、所有者等,您可以添加
-v
选项。$ tar -tvf Linux-ISOs.tar.gz
这很简单,但对于某些档案,您可能需要筛选数千个文件和目录。要搜索特定文件,您可以将其名称附加到命令中。如果存档中不存在该文件,您将不会收到返回到终端的任何输出。
$ tar -tf Linux-ISOs.tar.gz Slackware.iso
如果您想要搜索特定模式,您还可以在文件搜索中使用通配符。
$ tar -tf Linux-ISOs.tar.gz *.iso
您还可以通过管道将
tar -tf
命令传递给 grep。这可能会好一点,因为 grep 将搜索与您的搜索字符串匹配的任何文件,而不是仅匹配整个文件名。请注意,grep 命令中的-i
选项只是使搜索不区分大小写。$ tar -tf Linux-ISOs.tar.gz | grep -i man
或者我们可以使用以下命令语法和 grep 同时搜索几个不同的文件。
$ tar -tf Linux-ISOs.tar.gz | grep -E "Slack|Pop"
我们的另一个选择是使用 vim 文本编辑器来浏览压缩的 gzip 存档的内容。
$ vim Linux-ISOs.tar.gz
一次搜索多个 gzip 存档的最简单方法是使用 zgrep 实用程序,它基本上只是用于压缩存档的 grep。以下示例能够确定与模式“Ubuntu”匹配的文件位于 Debian-based.tar.gz 文件存档内。
$ zgrep Ubuntu *.gz
列出压缩档案的所有内容
列出压缩存档的所有内容以及额外的文件详细信息
在压缩的 gzip 存档中搜索特定文件
在压缩档案中搜索文件名模式
使用 grep 命令在压缩档案中搜索文件名模式
在压缩档案中搜索两种不同的文件名模式
使用 vim 文本编辑器浏览压缩档案的内容
使用 zgrep 实用程序搜索多个压缩档案的文件名模式
确定要提取的文件后,您可以从 gzip 存档中提取特定文件。
$ tar xvf Debian-based.tar.gz Ubuntu.iso
这应该是您在一个或多个 gzip 压缩档案中搜索特定文件或命名模式所需的所有命令。除了我们在这里列出的方法之外,还有更多可用的方法,但我们发现这些方法在测试时是最简单、最有效的。如果您还想了解如何从 GUI 搜索 gzip 存档,请参阅下面的部分。
通过 GUI 搜索 gzip 存档的内容
通过 GUI 打开和浏览 gzip 存档会略有不同,具体取决于您安装的桌面环境或您运行的 Linux 发行版。然而,所有现代 Linux 安装肯定会有一个默认程序可以打开压缩的 tar 存档,包括 gzip 存档。
浏览到存储压缩存档的位置,然后双击该文件将其打开,或右键单击该文件并选择使用系统的存档管理器打开它。
通过 GUI 打开压缩档案
打开存档后,单击放大镜(或以任何方式显示搜索图标)并键入部分文件名以搜索所需内容。
在 GUI 存档管理器中指定搜索模式
结束语
在本指南中,我们了解了如何搜索压缩的 gzip 存档的内容。这包括可以搜索特定文件或模式的命令行方法。我们还学习了如何同时搜索多个压缩档案。最后,我们看到了如何使用 GUI 的存档管理器来实现相同的功能。这些示例应帮助您快速识别并从压缩档案中提取任何文件或文件集。