如何提取/解压缩tar.gz文件
tar是Unix和类Unix系统上的存档打包工具,可以将多个文件合并为一个文件,打包后的文件约定扩展名上带有.tar,通常还有一个压缩程序的标识
tar
命令允许您创建,提取,解压缩tar存档文件。 它支持各种压缩程序,例如gzip
,bzip2
,lzip
,lzma
,lzop
,xz
和compress
压缩程序。
gzip命令是用于压缩tar文件的最流行算法。按照惯例,以gzip压缩的tar存档文件的名称应以.tar.gz
或.tgz
结尾。简而言之,以.tar.gz
结尾的文件是使用gzip压缩的.tar
存档。
本教程介绍如何使用tar
命令提取/解压缩.tar.gz
或.tgz
文件存档/压缩文件。包括使用文件管理器解压缩文件,解压缩文件到指定目录,仅提取或者解压缩指定的文件/目录,读取标准输入并解压缩存档文件,列出.tar.gz
或.tgz
文件存档的所有文件内容。
如需要创建tar文件的存档,可以参考我们的教程如何在Linux使用tar
命令创建/提取tar文件。此教程几乎包括tar
命令日常使用选项与解释。
解压缩文件
tar
程序默认情况下预安装在所有Linux发行版和macOS上。要提取.tar.gz
文件,请使用--extract
或者-x
选项调用tar
命令,然后指定.tar.gz
存档文件名称:
tar -xf archive.tar.gz
tar
自动检测压缩类型并解压缩文件。 可以使用同一命令来解压缩使用其他压缩程序的tar存档文件,例如.tar.xz
存档文件和或.tar.bz
存档文件。
如果您不是命令行用户,则可以使用GUI文件管理器。 只需右键单击要提取或者解压缩.tar.gz
文件,,然后选择提取
。 Windows用户需要一个名为7zip的软件来提取或者解压缩.tar.gz
文件。
要获得更详细的输出,请使用-v
选项。 此选项告诉tar
在终端上显示正在提取的文件的名称。
tar -xvf archive.tar.gz
默认情况下,tar
提取存档中的文件到当前工作目录。 要提取或者解压缩到指定目录中,请使用--directory
或者-C
选项。以下示例显示如何将存档文件解压缩/提取到/home/myfreax/files
目录中:
tar -xf archive.tar.gz -C /home/myfreax/files
提取指定文件
要从.tar.gz
文件中提取指定文件,请在存档文件按名称后附加要提取的文件名,多个文件以空格作为分隔符:
tar -xf archive.tar.gz file1 file2
提取文件时,必须提供其确切名称,包括使用--list
/-t
选项调用tar
时显示的路径。从存档中提取一个或多个目录与提取多个文件相同。提取多个目录命令如下所示:
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
--wildcards
选项允许您基于通配符模式/正则表达式从.tar.gz
文件中提取文件。 必须使用单引号对转义模式,以防止shell解释模式中的特殊符号。例如,要仅提取名称以.png
结尾的文件。可以使用以下命令:
tar -xf archive.tar.gz --wildcards '*.png'
读取标准输入
当通过从标准输入/管道读取存档文件并解压缩/提取.tar.gz
文件时,必须指定解压缩选项。-z
选项告诉tar
使用gzip
压缩程序提取/解压存档文件。
在下面的示例中,我们使用wget
命令下载Linux内核,并将wget命令生成的标准输出通过管道传递到tar
命令以进行解压/提取:
wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O - | sudo tar -xz
如果您未指定解压缩选项,则tar
将显示您应该使用的选项:
tar: Archive is compressed. Use -J option
tar: Error is not recoverable: exiting now
列出tar.gz文件的内容
要列出.tar.gz
存档文件所有文件内容,请使用--list
/-t
选项:
tar -tf archive.tar.gz
输出看起来像这样:
file1
file2
file3
如果添加--verbose
/-v
选项,则tar
将打印更多信息,例如所有者,文件大小,时间戳等:
tar -tvf archive.tar.gz
-rw-r--r-- myfreax/users 0 2020-02-15 01:19 file1
-rw-r--r-- myfreax/users 0 2020-02-15 01:19 file2
-rw-r--r-- myfreax/users 0 2020-02-15 01:19 file3
结论
.tar.gz文件是使用gzip压缩程序的Tar存档文件。要提取.tar.gz
文件,请使用tar -xz
命令,后跟文件名称。如有任何疑问,请在下面发表评论。