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

Bzip2是用于压缩tar文件的最受欢迎的压缩程序之一。按照惯例,以bzip2压缩的tar存档文件的名称以.tar.bz2.tbz2结尾。

本教程介绍如何使用tar命令提取/解压缩.tar.bz2.tbz2存档/压缩文件。包括使用文件管理器解压缩文件,解压缩文件到指定目录,仅提取或者解压缩指定的文件/目录,读取标准输入并解压缩存档文件,列出tar.bz2所有文件内容。

如需要创建tar文件的存档,可以参考我们的教程如何在Linux使用tar命令创建/提取tar文件。此教程几乎包括tar命令日常使用选项与解释。

如何使用tar命令创建/提取tar文件 | myfreax
tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提取tar存档/压缩包,显示存档/压缩包中包含的文件和目录的列表

解压缩文件

tar程序默认情况下预安装在所有Linux发行版和macOS上。要提取.tar.bz2文件,请使用--extract或者-x选项调用tar命令,并在-f选项后指定存档文件名名称:

tar -jf archive.tar.bz2

tar自动检测压缩类型并解压缩文件。 可以使用同一命令来解压缩使用其他压缩程序的tar存档文件,例如.tar.gz存档文件和或.tar.bz存档文件

如果您不是命令行用户,则可以使用GUI文件管理器。 要提取或者解压缩.tar.bz2文件,只需右键单击要提取的文件,然后选择提取。 Windows用户需要一个名为7zip 的软件来提取或者解压缩.tar.bz2文件。

要获得更详细的输出,请使用-v选项。 此选项告诉tar在终端上显示正在提取的文件的名称。

tar -xvf archive.tar.bz2

默认情况下,tar提取存档中的文件到当前工作目录。 要提取或者解压缩到指定目录中,请使用--directory或者-C选项。以下示例显示如何将存档文件解压缩/提取到/home/myfreax/files目录中:

tar -xf archive.tar.bz2 -C /home/myfreax/files

提取指定文件

要从.tar.bz2文件中提取指定文件,请在存档文件按名称后附加要提取的文件名,多个文件以空格作为分隔符:

tar -xf archive.tar.bz2 file1 file2

提取文件时,必须提供其确切名称,包括使用--list/-t选项调用tar时显示的路径。从存档中提取一个或多个目录与提取多个文件相同。提取多个目录命令如下所示:

tar -xf archive.tar.bz2 dir1 dir2

如果您尝试提取档案中不存在的文件,则会显示类似以下错误消息:

tar -xf archive.tar.bz2 README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors

--wildcards选项允许您基于通配符模式/正则表达式从.tar.bz2文件中提取文件。 必须使用单引号对转义模式,以防止shell解释模式中的特殊符号。例如,要仅提取名称以.png结尾的文件。可以使用以下命令:

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

读取标准输入

当通过从标准输入/管道读取存档文件并解压缩/提取.tar.bz2文件时,必须指定解压缩选项。-J选项告诉tar使用xz压缩程序提取/解压存档文件。

在下面的示例中,我们使用wget命令下载Linux内核,并将wget命令生成的标准输出通过管道传递到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.bz2文件的内容

要列出tar.bz2存档文件所有文件内容,请使用--list或者-t选项:

tar -tf archive.tar.bz2

输出看起来像这样:

file1
file2
file3

如果添加--verbose/-v选项,则tar将打印更多信息,例如所有者,文件大小,时间戳等:

tar -tvf archive.tar.bz2
-rw-r--r-- myfreax/users       0 2020-02-15 01:19 file1
-rw-r--r-- myfreax/users       0 2020-02-15 01:19 file2
-rw-r--r-- myfreax/users       0 2020-02-15 01:19 file3

结论

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