如何提取(解压缩)Tar Gz文件

如果您在开源世界漫游,很可能会定期遇到**.tar.gz**文件。开源软件包通常可以.tar.gz和.zip格式下载。

tar命令用于通过将一组文件转换为存档来创建tar存档。它支持广泛的压缩程序,如gzip,bzip2,lzip,lzma,lzop,xz和compress。Tar最初设计用于创建存档以在磁带上存储文件,这就是为什么它的名字叫“ T ape AR chive”。

Gzip是压缩tar文件最流行的算法。按照惯例,使用gzip压缩的tar存档的名称应该以**.tar.gz.tgz**结尾。

简而言之,以**.tar.gz结尾的文件是使用gzip压缩的.tar**存档。

tar命令还可用于提取tar存档,显示存档中包含的文件列表,将其他文件添加到现有存档,以及各种其他操作。

在本教程中,我们将向您展示如何提取(或解压缩)tar.gztgz档案。

提取tar.gz文件

大多数Linux发行版和macOS 默认都预装了tar命令。

要提取tar.gz文件,请使用--extract-x)运算符并在f选项后指定存档文件名:

tar -xf archive.tar.gz

tar命令将自动检测压缩类型并将提取存档。可以使用相同的命令提取使用其他算法(如**.tar.bz2)**压缩的tar存档。

如果您是桌面用户并且命令行不是您的事情,要提取(解压缩)tar.gz文件只需右键单击要提取的文件,然后选择“提取”。Windows用户需要一个名为7zip的工具来提取tar.gz文件。

-v选项将使tar命令更加可见,并打印在终端上提取的文件的名称。

tar -xvf archive.tar.gz

默认情况下,tar将提取当前工作目录中的存档内容。使用--directory-C)提取特定目录中的存档文件:

例如,要将存档内容提取到/home/linuxize/files目录,您可以使用:

tar -xf archive.tar.gz -C /home/linuxize/files

从tar.gz文件中提取特定文件

要从tar.gz文件中提取特定文件,请在归档名称后追加以空格分隔的文件名列表:

tar -xf archive.tar.gz file1 file2

提取文件时,必须提供其确切的名称,包括由--list-t)打印的路径。

从存档中提取一个或多个目录与提取文件相同:

tar -xf archive.tar.gz dir1 dir2

如果您尝试提取不存在的文件,将显示类似于以下内容的错误消息:

tar -xf archive.tar.gz README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors

从stdin中提取tar.gz文件

如果要通过管道从stdin读取存档来提取压缩的tar.gz文件,则需要指定解压缩选项。告诉tar通过gzip读取档案的选项是-z

在下面的示例中,我们使用wget命令下载Linux内核,并将tar.gz文件传递给tar命令:

wget -c https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.20.10.tar.xz -O - | sudo tar -xz

如果您没有指定解压缩选项,tar将指示您应该使用哪个选项:

tar: Archive is compressed. Use -z option
tar: Error is not recoverable: exiting now

列出tar.gz文件

要列出tar.gz文件的内容,请使用--list-t)操作。

tar -tf archive.tar.gz
file1file2file3

如果使用--verbose-v)选项列出tar.gz文件的内容,则tar将打印更多信息,如所有者,文件大小,时间戳等.etc:

tar -tvf archive.tar.gz
-rw-r--r-- linuxize/users       0 2019-02-15 01:19 file1-rw-r--r-- linuxize/users       0 2019-02-15 01:19 file2-rw-r--r-- linuxize/users       0 2019-02-15 01:19 file3

您还可以基于通配符模式从tar.gz文件中提取文件,方法是使用--wildcards开关并引用模式以防止shell解释它。

例如,要提取名称以.js(Javascript文件)结尾的文件,您可以使用:

tar -xf archive.tar.gz --wildcards '*.js'

结论

到目前为止,您应该很好地了解如何提取tar.gz档案。您还可以阅读我们的文章,了解如何使用Linux中的Tar命令创建和提取存档