tar命令允许您创建,提取,解压缩tar存档文件。它支持各种压缩程序,例如gzipbzip2lziplzmalzopxzcompress压缩程序。

gz是基于Gzip算法,它也是一种流行压缩算法。按照惯例,以gz压缩程序的tar存档文件的名称以.tar.gz.tgz结尾。

本教程介绍如何使用tar命令解压.tar.gz.tgz文件。包括使用文件管理器解压缩文件。

tar 命令创建tar.gz文件

要创建tar.gz文件,可以使用gzip程序压缩tar文件,当使用gzip压缩程序创建的压缩文件,按照约定,压缩文件的名称应以gz结尾。

要创建使用gzip压缩程序的创建tar.gz文件。请使用tar命令的-z选项。该选项将会使用gzip程序压缩tar存档文件。

例如命令tar czfv archive.tar.gz file1 file2将会打包文件file1file2到压缩文件archive.tar.gz

tar czfv archive.tar.gz file1 file2

tar 命令解压tar.gz文件

tar命令默认预安装在所有Linux发行版和macOS。要解压tar.gz文件,请tar命令的使用--extract或者-x选项,并在-f选项后指定tar.gz文件文件名称。

tar自动检测压缩文件使用的算法并自动解压文件。也可以使用tar -xf命令来解压使用其他压缩算法的tar存档文件。例如.tar.xz文件和.tar.bz2文件。

命令tar -xf archive.tar.gz命令将会解压archive.tar.gz文件到当前目录。-f选项用于指定文件,-x选项表示解压。

tar -xf archive.tar.gz

tar 命令指定解压目录

tar默认解压tar.gz文件到当前工作目录。要解压到指定目录,请使用--directory或者-C选项。

要获得更详细的输出,请使用tar命令的-v选项。这将会在终端打印正在解压的文件名称。

命令tar -xf archive.tar.gz -C /home/myfreax/filesarchive.tar.gz解压到/home/myfreax/files目录。

tar -xvf archive.tar.gz
tar -xf archive.tar.gz -C /home/myfreax/files

tar 命令解压指定文件

要从tar.gz文件中提取指定文件,请在tar命令的最后指定要提取文件名称,多个文件以空格作为分隔符。

提取文件时,必须提供文件在压缩内文件的内的路径,你可以使用tar命令的--list/-t选项查看文件路径,运行命令tar tf test.tar.gz

除了在tar.gz压缩文件提取文件以外,你还可以提取一个或多个目录。与提取文件一样你需要指定目录在压缩内文件的内的路径。

如果您尝试提取压缩文件内不存在的文件,tar命令将会错误消息tar: README: Not found in archive。tar: Exiting with failure status due to previous errors。

例如命令tar -xf archive.tar.gz test/dir/ test/file1将会提取文件test/file1 和目录test/dir/到当前目录。

test/
test/file1
test/dir/
test/dir/file2
archive.tar.gz
tar -tf archive.tar.gz

tar -xf archive.tar.gz test/file1
tar -xf archive.tar.gz test/dir/ test/file1

tar命令的--wildcards选项允许您基于通配符模式或者正则表达式从tar.gz文件中提取多个文件。

在使用通配符模式或者正则表达匹配多个文件时,必须使用单引号对模式进行包裹,避免shell解释模式中的特殊符号。

例如命令tar -xf archive.tar.gz --wildcards '*.png'将会提取以.png结尾的文件。

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

tar 命令读取标准输入解压

tar命令可以从指定文件解压,也可以读取标准输入对文件进行解压。这样就可以做到一边下载一边解压。

当通过标准输入解压tar.gz文件时,你必须指定解压的程序。tar命令的-z选项指定使用gzip压缩程序解压文件。

如果您未指定解压缩选项,tar命令将会打印消息tar: Archive is compressed. Use -z option。tar: Error is not recoverable: exiting now。提示你使用-z选项。

例如命令wget -c URL -O - | sudo tar -xz使用wget命令下载Linux内核并写到标准输出,然后通过管道传递到tar命令进行解压。

wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0-rc3.tar.gz -O - | sudo tar -xz

tar 命令查看tar.gz文件

要查看tar.gz压缩文件,请使用tar命令的--list或者-t选项列出所有文件内容。

除了查看文件名称,你还可以添加tar命令的--verbose/-v选项打印更详细的信息。

这些文件的信息包括所有者,文件大小,时间戳,权限等。

tar -tf archive.tar.gz
tar -tvf archive.tar.gz
drwxrwxr-x myfreax/myfreax   0 2022-12-02 13:30 test/
-rw-rw-r-- myfreax/myfreax   0 2022-12-02 13:25 test/file1
drwxrwxr-x myfreax/myfreax   0 2022-12-02 13:26 test/dir/
-rw-rw-r-- myfreax/myfreax   0 2022-12-02 13:26 test/dir/file2

文件管理器解压tar.gz文件

如果您不是命令行用户,则可以使用GUI文件管理器解压tar.gz文件。

要使用文件管理器解压tar.gz文件,只需右键单击要解压的文件,然后选择提取。 Windows用户需要安装7zip软件来解压tar.gz文件。

结论

tar.gz文件是使用gzip压缩程序的Tar存档文件。要解压tar.gz文件,请使用tar -xf命令,后跟文件名称。如有任何疑问,请在下面发表评论。