本文最先发布在:
如何解压缩 tar.xz 文件 - ITCoderwww.itcoder.tech
tar
命令允许你创建和解压缩 tar 包。它支持很多压缩算法,例如 gzip, bzip2, lzip, lzop, xz 和 compress。
XZ 是一个基于 LZMA 算法,用于压缩文件的流行算法。
按照惯例,使用 xz 压缩的 tar 包名字都以 .tar.xz
或者 .txz
结尾。
本文讲解了如何使用tar
命令来解压缩.tar.xz
或者 .txz
包。
一、解压 tar.xz 文件
tar 工具默认在所有的 Linux 发行版和 macOS 上都已经安装好了。
想要解压一个 tar.xz 文件,使用 tar
命令加上--extract
(-x
)选项,并且在-f
选项后面加上包文件名。
tar -xf archive.tar.xz
tar
自动检测压缩类型,并且解压缩包文件。同样的命令可以用来解压缩使用其他算法,例如:.tar.gz 或者.tar.bz2 压缩的文件。
如果你不想使用命令行,你可以使用 GUI 文件管理器。 想要解压一个 tar.xz 文件,只需要简单右键点击你想要解压的文件,并且选择"Extract”。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 文件,你必须指定一个压缩选项。这个-J
选项告诉tar
这个文件是使用 xz 来压缩的。
在下面的这个例子中,我们使用 wget 命令下载 Linux Kernel,并且通过管道将输出传递给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
命令,加上压缩包名字即可。