本文介绍使用tar命令提取(或解压缩)tar.bz2和tbz2文件的方法。tar命令允许你创建和提取tar归档文件,它支持各种压缩程序,例如gzip、bzip2、lzip、lzma、lzop、xz和compress。Bzip2是用于压缩tar文件的最受欢迎的算法之一,按照约定,用bzip2压缩的tar归档文件的名称以.tar.bz2或.tbz2结尾。

6591c13e2b475493f2c2bab7046157f0.png

提取tar.bz2文件

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

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

$ tar -jf archive.tar.bz2

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

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

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

$ tar -xvf archive.tar.bz2

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

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

$ tar -jf archive.tar.bz2 -C /home/ywnz/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

输出将如下所示:

029ad5524b7f0b72f2ad4bbe396a3b59.png

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

$ tar -tvf archive.tar.bz2

$ -rw-r--r-- ywnz/users  0 2019-02-15 01:19 file1

$ -rw-r--r-- ywnz/users  0 2019-02-15 01:19 file2

$ -rw-r--r-- ywnz/users  0 2019-02-15 01:19 file3

结论

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

相关主题

Logo

更多推荐