tar
命令允许您创建,提取,解压缩tar存档文件。它支持各种压缩程序,例如gzip
,bzip2
,lzip
,lzma
,lzop
,xz
和compress
压缩程序。
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
将会打包文件file1
,file2
到压缩文件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/files
将archive.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
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
命令,后跟文件名称。如有任何疑问,请在下面发表评论。