如何在Linux系统中解压tar,xz格式文件
Linux中的tar
命令允许你创建和解压tar格式的归档文件。它支持各种归档程序,例如gzip
, bzip2
, lzip
, lzma
,lzop
, xz
和compress
。
Xz
是基于LZMA
算法的一种流行的文件压缩算法。 按照约定,用xz
压缩的tar
归档文件的名称以.tar.xz
或.txz
结尾。
本文介绍了如何使用tar命令提取或解压.tar.xz
或.txz
档案。
解压tar.xz文件
默认情况下,tar
实用程序已预安装在所有Linux发行版和macOS上。
要提取tar.xz
文件,请使用--extract(-x)
选项调用tar
命令,并在-f
选项之后指定存档文件名:
tar -xf archive.tar.xz
tar
自动检测压缩类型并提取存档, 可以使用同一命令来提取使用其他算法(例如.tar.gz或.tar.bz2)压缩的tar存档。
如果要获得更详细的输出,可以使用-v
选项,该选项告诉tar
在终端上显示提取的文件名称。
tar -xvf archive.tar.xz
缺省情况下,tar
将归档内容提取到当前工作目录中。 要提取特定目录中的存档文件,可以使用--directory(-C)
选项指定目录。
以下示例显示了如何将归档内容提取到/home/linux265/files
目录:
tar -xf archive.tar.xz -C /home/linux265/files
从tar.xz文件中提取特定文件
要从tar.xz文件中提取特定文件,需要在归档文件名称后附加要提取的文件名的空格分隔列表:
tar -xf archive.tar.xz file1 file2
提取文件时,必须提供其确切名称,包括路径,具体格式和使用--list(-t)
选项调用tar时所显示文件内容路径一样。
从存档中提取一个或多个目录与提取多个文件相同:
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'
从stdin中提取tar.xz文件
通过从标准输入(通常通过管道)读取档案来提取压缩的tar.xz
文件时,必须指定解压缩选项。-J
选项告诉tar
文件使用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
写在最后
本文主要讲解了如何在Linux系统中压缩或解压tar,xz格式文件。tar.xz
文件是使用xz
压缩的tar
归档文件。 要提取tar.xz
文件,请使用tar -xf
命令,后跟归档文件名称。
如果想了解更多Linux中命令使用,可以下载Linux命令中文手册,关注我后,公号里面回复“命令”即可下载。