如何提取(解压缩)Tar Bz2文件

时间:2020-03-05 15:25:37  来源:igfitidea点击:

“ 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.gz或者.tar.xz)压缩的tar归档文件。

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

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

tar -xvf archive.tar.bz2

默认情况下,“ tar”将在当前工作目录中提取存档内容。

使用'--directory'('-C')将归档文件提取到特定目录中:

例如,要将存档内容提取到“/home/theitroad/files”目录中,请输入:

tar -xf archive.tar.bz2 -C /home/theitroad/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'将打印更多信息,例如所有者,文件大小,时间戳..etc:

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