如何提取(解压缩) tar bz2 文件

tar 命令允许您创建和提取 tar 归档文件。它支持各种压缩程序,例如 gzip , bzip2 , lzip , lzma , lzop , xz 和 compress 。

Bzip2 是用于压缩 tar 文件的最受欢迎的算法之一。按照约定,使用bzip2压缩的 tar 归档文件的名称以**.tar.bz2.tbz2**结尾。

在本教程中,我们将说明如何使用命令提取(或解压缩 )tar.bz2tbz2档案 tar

提取 tar.bz2 文件

大多数 Linux 发行版和 macOS 都默认预安装了tar实用程序。

要提取 tar.bz2 文件,请使用 --extract(-x) 选项,并在该 -f 选项后指定存档文件名:

tar -jf archive.tar.bz2

tar 命令自动检测压缩类型并提取存档。可以使用同一命令来提取使用其他算法(例如 .tar.gz) 压缩的 tar 存档。

如果您是桌面用户,而命令行不是您的事,则可以使用文件管理器。要提取(解压缩 )tar.bz2 文件,只需右键单击要提取的文件,然后选择“提取”。 Windows 用户将需要一个名为 7zip 的工具来提取 tar.bz2 文件。

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

tar -xvf archive.tar.bz2

默认情况下, tar 将存档内容提取到当前工作目录中。使用 --directory(-C) 可以将存档文件提取到特定目录中:

例如,要将归档内容提取到 /home/linuxize/files 目录中,您将输入:

tar -jf archive.tar.bz2 -C /home/linuxize/files

从 tar.bz2 文件中提取特定文件

要从 tar.bz2 文件中提取特定文件,请在归档文件名称后附加要提取的文件名的空格分隔列表:

tar -jf archive.tar.bz2 file1 file2

解压缩文件时,必须提供其确切名称,包括使用 --list(-t) 选项时显示的路径。

从存档中提取一个或多个目录和提取多个文件相同:

tar -jf archive.tar.bz2 dir1 dir2

如果您尝试解压缩档案中不存在的文件,则会显示类似于以下内容的错误消息:

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

--wildcards 选项使您可以基于通配符模式从 tar.bz2 文件中提取文件。该模式必须加引号,以防止 shell 解释它。

例如,要仅提取名称以 .md(Markdown 文件)结尾的文件,可以使用:

tar -jf archive.tar.bz2 --wildcards '*.md'

从标准输入中提取 tar.bz2 文件

通过从标准输入(通常通过管道)读取档案来提取压缩的 tar.bz2 文件时,必须指定解压缩选项 -j 。该选项表明该 tar 文件是使用 bzip2 压缩的。

在下面的示例中,我们使用 wget 命令下载 Vim 源并将其输出通过管道传递给 tar 命令:

wget -c ftp://ftp.vim.org/pub/vim/unix/vim-8.1.tar.bz2 -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-- linuxize/users       0 2019-02-15 01:19 file1
-rw-r--r-- linuxize/users       0 2019-02-15 01:19 file2
-rw-r--r-- linuxize/users       0 2019-02-15 01:19 file3

结论

tar.bz2文件是使用 Bzip2 压缩的 Tar 归档文件。要提取 tar.bz2 文件,请使用 tar -jf 命令,后跟档案名称。