如何提取(解压缩) tar.xz 文件
tar
命令允许您创建和提取 tar 归档文件。它支持各种压缩程序,例如 gzip , bzip2 , lzip , lzma , lzop , xz 和 compress 。
xz 是基于 LZMA 算法的一种流行的文件压缩算法。按照约定,用 xz 压缩的 tar 归档文件的名称以 .tar.xz 或 .txz结尾。
本文介绍了如何使用 tar
命令提取(或解压缩 ) .tar.xz 或 .txz 档案。
提取 tar.xz 文件
默认情况下,所有 Linux 发行版和 MacOS 实用程序预装 tar
。
要提取 tar.xz 文件,请在调用 tar
命令时使用 --extract
(-x
) 选项,并在 -f
选项后跟上存档文件名:
tar -xf archive.tar.xz
tar
自动检测压缩类型并提取存档。可以使用同一命令来提取使用其他算法压缩的 tar 存档(例如 .tar.gz 或 .tar.bz2)。
如果您不需要使用命令行,则可以使用 GUI 文件管理器。要提取(解压缩 )tar.xz 文件,只需右键单击要提取的文件,然后选择“解压缩”。 Windows 用户需要一个名为 7zip 的工具来提取 tar.xz 文件。
要获得更详细的输出,请使用该 -v
选项。此选项告诉 tar
您在终端上显示正在提取的文件的名称。
tar -xvf archive.tar.xz
默认情况下, tar
将归档内容提取到当前工作目录中。要提取特定目录中的存档文件,请使用 --directory
(-C
) 。
以下示例显示了如何将归档内容提取到 /home/linuxize/files
目录中:
tar -xf archive.tar.xz -C /home/linuxize/files
从 tar.xz 文件中提取特定文件
要从 tar.xz 文件中提取特定文件,请在归档文件名称后附加要提取的文件名,多个文件请使用空格分隔:
tar -xf archive.tar.xz file1 file2
提取文件时,必须提供其确切名称,包括路径(您可以使用 tar
带上 --list
(-t
) 选项显示路径)。
从存档中提取一个或多个目录与提取多个文件相同:
tar -xf archive.tar.xz dir1 dir2
如果您尝试解压缩档案中不存在的文件,将显示类似于以下内容的错误消息:
tar -xf archive.tar.xz README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors
选项 --wildcards
使您可以基于通配符模式从 tar.xz 文件中提取文件。该模式必须加引号,以防止 shell 程序解释它。
例如,要仅提取名称以结尾的文件 .png
,可以使用:
tar -xf archive.tar.xz --wildcards '*.png'
从标准输入中提取 tar.xz 文件
通过从标准输入(通常通过管道)读取档案来提取压缩的 tar.xz 文件时,必须指定解压缩选项。 tar
使用 -J
选项指明该文件已使用 xz 压缩。
在下面的示例中,我们使用 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: Archive is compressed. Use -J option
tar: Error is not recoverable: exiting now
列出 tar.xz 文件内容
要列出 tar.xz 文件的内容,请使用 --list
(-t
) 选项:
tar -tf archive.tar.xz
输出将如下所示:
file1
file2
file3
如果添加 --verbose
(-v
) 选项, tar
将打印更多信息,例如所有者,文件大小,时间戳等等 :
tar -tvf archive.tar.xz
-rw-r--r-- linuxize/users 0 2020-02-15 01:19 file1
-rw-r--r-- linuxize/users 0 2020-02-15 01:19 file2
-rw-r--r-- linuxize/users 0 2020-02-15 01:19 file3
结论
tar.xz 文件是使用 xz 压缩的 Tar 归档文件。要提取 tar.xz 文件,请使用 tar -xf
命令。