一、zip格式
zip可能是目前使用的最多的文档压缩格式。它最大的优点就是在不同的操作系统平台上使用。缺点就是支持
的压缩率不是很高,而tar.gz和tar.bz2在压缩率方面做得非常好。
我们可以使用下列的命令压缩一个文件:
zip -r archive_name.zip filename (-r是压缩文件)
下面是如果解压一个zip文件:
unzip archive_name.zip (解压文件在当前文件下)
unzip archive_name.zip -d new_dir (解压文件可以将文件解压缩至一个你指定的的目录,使用-d参数)
二、tar格式
tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,它
仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
tar -cvf archive_name.tar directory_to_compress
-v参数详细显示处理的文件
-c参数是建立新的存档
-f参数指定存档或设备
打包之后如何解包:
tar -xvf archive_name.tar
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用下面的这个命令来解包到指定的路径:
tar -xvf archive_name.tar -C new_dir (解包的参数是-C,不是小写c)
三、tar.gz格式
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。
压缩方式:
tar -zcvf archive_name.tar.gz filename
解压缩方式:
tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解包在当前目录下面。当然,你也可以用下面的这个命令来指定解包的路径:
tar -zxvf archive_name.tar.gz -C new_dir
四、tar.bz2格式
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。
压缩方式:
tar -jcvf archive_name.tar.bz2 filename
解压缩方式:
tar -jxvf archive_name.tar.bz2
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用下面的这个命令来指定解包的路径:
tar -jxvf archive_name.tar.bz2 -C new_dir
其它:应用场景
1、多个文件打包压缩
例如:将test1,test2文件夹生成test包可通过下面方法
tar -zcvf test3.tar.gz test1 test2
其它问题:
1.unzip命令解压zip格式乱码
在windows上压缩的文件,是以系统默认编码中文来压缩文件。由于zip文件中没有声明其编码,所以linux上的unzip一般以默认编码解压,中文文件名会出现乱码。
虽然2005年就有人把这报告为bug, 但是info-zip的官方网站没有把自动识别编码列入计划,可能他们不认为这是个问题。Sun对java中存在N年的zip编码问题,采用了同样的处理方式。
有2种方式解决问题:
-
通过unzip行命令解压,指定字符集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)
有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明。 -
在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件
/etc/environment中加入2行
UNZIP="-O CP936"
ZIPINFO="-O CP936"