本文主要讨论linux下常见的各种文件解压缩方式,同时比较各类压缩方式的压缩率和压缩时间。
一、我们来说说常见的压缩文件格式:
.tar tar 程序打包的资料,并没有压缩过;
.gz gzip 程序压缩的档案;
.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
.bz2 bzip2 程序压缩的档案;
.tar.bz2 tar 程序打包的档案,其中并且经过 bzip2 的压缩
.Z unix 档案压缩
.zip zip 程序压缩打包的档案;
.rar rar 程序压缩打包的档案;
.xz xz 程序压缩的档案;
.tar.xz tar 程序打包的档案,其中并且经过 xz 的压缩
.7z 7zip 程序压缩打包的档案。
二、常见解压缩命令:
1、.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar FileName
2、.gz
解压:gunzip FileName.gz
压缩:gzip FileName(注:gzip 不能压缩目录只能压缩文件)
3、.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz FileName
4、.bz2
解压:bzip2 -d FileName.bz2
压缩:bzip2 -z FileName.tar.bz2
5、.Z
解压:uncompress FileName.Z
压缩:compress FileName.Z
6、.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
7、.zip
解压:unzip FileName.zip
压缩:zip FileName.zip FileName
8、.rar
解压:rar e FileName.rar
压缩:rar a FileName.rar
9、tar.xz
解压: tar xvjf FileName.tar.xz
压缩: tar cvf FileName.tar FileName; xz -zFileName.tar
10、7z
解压: 7z x FileName.7z
压缩: 7z a FileName.7z FileName
三、压缩率和压缩时间比较:
root@ojlab:~$ du -s FileName/
6360000 FileName/
root@ojlab:~$ time tar zcf FileName.tar.gz FileName
real 5m20.915s
user 5m26.926s
sys 0m8.307s
root@ojlab:~$ time tar zcf FileName.tar.tgz FileName
real 5m21.044s
user 5m27.203s
sys 0m8.101s
root@ojlab:~$ time tar -jcf FileName.tar.bz2 FileName
real 12m12.725s
user 12m13.087s
sys 0m9.891s
root@ojlab:~$ time zip -r FileName.zip FileName
real 6m44.007s
user 6m33.764s
sys 0m8.367s
root@ojlab:~$ time rar a FileName.rar
real 4m41.960s
user 20m7.899s
sys 1m13.742s
root@ojlab:~$ time 7z a FileName.7z FileName
real 2m16.730s
user 55m33.900s
sys 0m19.131s
root@ojlab:~$ du -sh FileName*
6.1G FileName
1.6G FileName.7z
2.4G FileName.rar
5.9G FileName.tar
1.9G FileName.tar.bz2
2.2G FileName.tar.gz
2.2G FileName.tar.tgz
2.8G FileName.zip
从以上数据可以明显的看出,压缩率: 7z > bz2 > gz > rar > zip,压缩时间: 7z < rar < gz < zip < bz2,综合来看,7z表现最好,但linux下使用的不是太多,而bz2虽然压缩率高但时间长,gz属于折中的考虑。