如何提取(Unzip)Tar Bz2 文件
tar
命令允许您创建和提取 tar 档案。它支持多种压缩程序,例如 gzip、bzip2、lzip、lzma、lzop、xz 和 compress。
Bzip2 是最流行的 tar 文件压缩算法之一。按照约定,使用 bzip2 压缩的 tar 存档的名称以 .tar.bz2 或 .tbz2 结尾。
在本教程中,我们将解释如何使用 tar
命令提取(或解压缩)tar.bz2 和 tbz2 存档。
提取 tar.bz2 文件
大多数 Linux 发行版和 macOS 都默认预装了 tar 实用程序。
要提取 tar.bz2 文件,请使用 --extract
(-x
) 选项并在 -f
选项后指定存档文件名:
tar -xf archive.tar.bz2
tar
命令自动检测压缩类型并提取存档。相同的命令可用于提取使用其他算法压缩的 tar 存档,例如 .tar.gz
或 .tar.xz。
如果您是桌面用户并且不喜欢命令行,则可以使用文件管理器。要提取(解压缩)tar.bz2 文件,只需右键单击要提取的文件并选择“提取”即可。 Windows 用户需要一个名为 7zip 的工具 提取 tar.bz2 文件。
要获得更详细的输出,请使用-v
选项。该选项告诉tar
在终端上显示正在提取的文件的名称。
tar -xvf archive.tar.bz2
默认情况下,tar
将在当前工作目录中提取存档内容
。使用--directory
(-C
) 将存档文件提取到特定目录中:
例如,要将存档内容提取到 /home/linuxize/files
目录,您可以键入:
tar -xf archive.tar.bz2 -C /home/linuxize/files
从 tar.bz2 文件中提取特定文件
要从 tar.bz2 文件中提取特定文件,请在存档名称后附加要提取的文件名的空格分隔列表:
tar -xf archive.tar.bz2 file1 file2
提取文件时,必须提供其确切名称(包括路径),如使用 --list
(-t
) 选项时打印的那样。
从存档中提取一个或多个目录与提取多个文件相同:
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 解释它。
例如,要仅提取名称以 .md
结尾的文件(Markdown 文件),您可以使用:
tar -xf 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 文件是一个 Tar 存档
使用 Bzip2 压缩。要提取 tar.bz2 文件,请使用 tar -xf
命令,后跟存档名称。
如果您有任何疑问,请在下面留言。