1、什么是tar

1.1、tar

tar命令将指定的文件、文件夹打包(存储)为一个文件(归档文件,archive file)。tar将被归档文件以及被归档文件的文件名、时间戳以及文件权限等文件属性写入归档文件。归档文件的后缀名为tar。

tar命令的名字派生自tape archive(磁带归档文件)。该命令在1979年1月发布的Unix v7中首次被引入,用以替代tp命令。之后,归档文件的文件格式在POSIX.1-1988和POSIX.1-2001中被确认。

1.2、tar.gz、tar.bz2、tar.7z等

在Ubuntu上压缩文件,或者从开源代码网站下载代码时,经常会遇到后缀名为tar.gz、tar.bz2、tar.7z等的文件。这些文件是在tar输出的归档文件基础上,使用特定压缩算法对归档文件进行压缩之后的输出文件。不同的压缩算法对应不同的tar.xx后缀名。采用这种“打包+压缩”的方式,可以在压缩文件的同时保存时间戳、文件权限等文件属性。

 

2、打包/解包

 2.1、Linux

在命令行中,使用如下命令将文件FILE1FILE2以及文件夹DIR1DIR2打包为ARCHIVE.tar

tar -cvf ARCHIVE.tar FILE1 FILE2 DIR1 DIR2

在命令行中,使用如下命令将当前目录下的txt文件、dat文件打包为ARCHIVE.tar

tar -cvf ARCHIVE.tar *.txt *.dat

在命令行中,使用如下命令将归档文件ARCHIVE.tar解包到当前目录下。

tar -xvf ARCHIVE.tar

 当然,也可以在Ubuntu的文件浏览器下,选中待打包文件,通过鼠标右键菜单中的“Compress...”对选中的文件进行打包。或者选中归档文件,通过鼠标右键菜单中的“Open With Archive Manager”或“Extract Here”,对归档文件进行解包。

 

archivelog文件夹路径 archive文件格式_右键

archivelog文件夹路径 archive文件格式_archivelog文件夹路径_02

(点击右键看大图)

 2.2、Windows

在Windows下,可以通过7-Zip软件对文件进行打包和解包。

如下图所示,用户可以在Windows文件浏览器下,选中待打包的文件,然后点击鼠标右键,选择“7-Zip>>添加到压缩包...”,对文件进行打包。

archivelog文件夹路径 archive文件格式_归档文件_03

archivelog文件夹路径 archive文件格式_右键_04

(点击右键看大图)

如下图所示,用户可以在Windows文件浏览器下,选中归档文件,然后点击鼠标右键,选择“7-Zip>>打开压缩包...“或”提取到当前位置”,对归档文件进行解包。

archivelog文件夹路径 archive文件格式_解包_05

(点击右键看大图)

用户也可在Windows命令行中,使用7z.exe进行打包、解包操作。

更详细的信息参见7-Zip官网

 

3、带压缩的打包/解包

带压缩的打包,就是如1.2所述的,先归档,再使用压缩算法对归档文件进行压缩。

如下图所示,在Ubuntu文件浏览器中,选中文件,点击鼠标右键,选择“Compress...”,在弹出的对话框中(如下图所示)可以看到文件后缀名列表中有tar.7ztar.Ztar.bz2tar.gztar.lztar.lzmatar.lzotar.xz

archivelog文件夹路径 archive文件格式_解包_06

archivelog文件夹路径 archive文件格式_archivelog文件夹路径_07

(点击右键看大图)

其中,

- tar.bz2使用bzip2压缩(基于块排序压缩算法)。打包命令为“tar cvfj ARCHIVE.tar.bz2 FILE”,解包命令为“tar xvf ARCHIVE.tar.bz2”。

- tar.gz使用gzip压缩(基于DEFLATE压缩算法)。打包命令为“tar cvfz”,解包命令为“tar xvf ARCHIVE.tar.gz”。

 

[1] 维基百科:tar

[2] FreeBSD Manual:tar