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

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

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

tar 命令创建tar.xz文件

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

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

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

tar cJfv archive.tar.xz file1 file2

tar 命令解压tar.xz文件

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

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

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

tar -xf archive.tar.xz

tar 命令指定解压目录

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

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

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

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

tar 命令提取指定文件

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

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

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

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

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

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

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

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

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

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

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

tar 命令读取标准输入解压

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

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

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

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

wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O - | sudo tar -xj

tar 命令查看tar.xz文件

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

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

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

tar -tf archive.tar.xz
tar -tvf archive.tar.xz
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.xz文件

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

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

结论

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