Linux下压缩、解压命令、压缩比介绍说明

Linux下压缩、解压命令很多灵活度很大,不像在windows下winrar或360压缩几乎各占版比江山,清一色的.rar .zip格式。Linux下常用的tar tar.gz tar.bz2 .Z等等格式种类繁多。而每种压缩和解压方式所耗CPU时间和压缩比率也差异甚大。在此我一一列举,希望不当之处,敬请各位指教。

1 各种压缩 解压命令Demo

(1) tar

仅仅做打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。

打包归档:
tar -cvf examples.tar examples   (examples为shell执行路径下的目录)
释放解压:
tar -xvf examples.tar (解压至当前shell执行目录下)
tar -xvf examples.tar  -C /path (/path 解压至其它路径)

(2)tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理)

Linux下使用非常普遍的一种压缩方式,兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率) 其实这是对(1)的tar包进行gzip算法的压缩

打包压缩:
tar -zcvf examples.tgz examples   (examples为shell执行路径下的目录)

释放解压:
tar -zxvf examples.tar (解压至当前shell执行目录下)
tar -zxvf examples.tar  -C /path (/path 解压至其它路径)

(3)tar.bz

Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。但同时在压缩,解压的过程却是非常耗费CPU时间。

打包压缩:
tar -jcvf examples.tar.bz examples   (examples为shell执行路径下的目录)

释放解压:
tar -jxvf examples.tar.bz (解压至当前shell执行目录下)
tar -jxvf examples.tar.bz  -C /path (/path 解压至其它路径)

(4) tar.bz2

较tar.bz有着更快速的效率。所使用的命令与(3)相同,不再赘述。

(5) .gz

压缩:
gzip-d examples.gz examples

解压:
gunzip examples.gz

(6) .Z

压缩:
compress files

解压:
uncompress examples.Z

(7) tar.Z

压缩:
tar -Zcvf examples.tar.Z examples

解压:
tar -Zxvf examples.tar.Z

(8) .zip

压缩:
zip -r examples.zip examples (examples为目录)

解压:
zip examples.zip

(9) .rar

压缩:
rar -a examples.rar examples

解压:
rar -x examples.rar

----------------------------------------------------------------------------------------

2 各种压缩比率,占用时间对比

为了保证能够让压缩比率较为明显,需选取一个内容较多、占用空间较大的目录作为Demo。我将自己Ubuntu 9.10中/user/local整个目录作为范例,/user/local内所有文件总计大小为877.7MB。

在此,我们定义 压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小

(1).tar

tar -cvf local.tar /usr/local

打包后 local.tar: 892.6MB, 耗费时间:55 s (秒)。此实验打包后.tar后反倒比原来文件内容更大,出乎意料! 压缩比率为877.7/892.6=0.98(居然不是相同,等于1!)

 tar -xvf local.tar

释放877.7MB(与原/usr/local大小完全相同,符合预期),耗费时间:78 s,比打包耗时

对于.tar而言,打包比释放较为快速,但打包后的.tar比原目录内容所占空间要大。

(2) .tgz

tar -zcvf local.tgz /usr/local

打包后 local.tgz: 344.1MB, 耗费时间: 146 s (秒)。此实验说明.tgz压缩到50%以下的空间,具体为 压缩比率=877.7/344.1 =2.55

tar -zxvf local.tar

解压877.7MB,耗费时间: 56 s。 此与.tar 正相反,解压比打包省时了很多,接近到打包时间的三分之一。

(3) .tar.bz

tar -jcvf local.tar.bz /usr/local

打包后local.tar.bz: 318.4 MB 耗费时间:330 s(即5 m 30 s,非常之漫长!) 压缩比率为877.7/318.4=2.76

相对于.tgz的压缩得更小巧,但优势并不大,CPU耗费时间却多了两倍多。

tar -xcvf local.tar.bz

解压877.7 MB,耗费时间: 128 s。 此与.tgz相似,解压比打包省时很多,接近打包时间的三分之

(4) .tar.bz2

tar -jcvf local.tar.bz2 /usr/local

打包后local.tar.bz: 318.4 MB 耗费时间: 302 s 压缩比率为877.7/318.4=2.76

与.tar.bz打包后大小完全一致,但CPU耗费时间稍少一点。因此从此实验说明,网上一些言论称tar.bz2比tar.bz有着更大的压缩比率似乎说不通,只是速度稍快,高效了一些而已。

tar -xcvf local.tar.bz

解压877.7 MB,耗费时间: 123 s。 此与.tar.bz相差不大,略有优势。

由此可见,对于tar.bz 与tar.bz2打包后并无差异,只是tar.bz2较为快速,时间上略占上风。

其它如.zip .Z .rar等压缩方式在Linux下使用不是非常广泛,在此不做进一步探讨实验。

综合起来,在压缩比率上: tar.bz=tar.bz2>tgz>tar
占用空间与压缩比率成反比: tar.bz=tar.bz2 耗费时间(打包,解压)
打包:tar.bz>tar.bz2>tgz>tar
解压: tar.bz>tar.bz2>tar>tgz
从效率角度来说,当然是耗费时间越短越好

因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。

如果对效率很关切,非常在乎时间的话,选择tgz tar的方式都不错。当然,如果disk空间较为紧张,非常在乎空间的话,选择高压缩比率的tar.bz2则更为适宜。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用的Linux文件压缩命令包括:gzip、bzip2、zip和tar。 1. gzip命令 gzip命令用于压缩文件,其格式如下: ``` gzip [选项] 文件名 ``` 常用选项包括: - -c:将压缩结果输出到标准输出,不修改原始文件; - -d:解压文件; - -r:递归处理目录下的所有文件。 例如,将文件test.txt压缩成test.txt.gz: ``` gzip test.txt ``` 2. bzip2命令 bzip2命令也用于压缩文件,但相比gzip,bzip2可以得到更高的压缩比,其格式如下: ``` bzip2 [选项] 文件名 ``` 常用选项包括: - -c:将压缩结果输出到标准输出,不修改原始文件; - -d:解压文件; - -r:递归处理目录下的所有文件。 例如,将文件test.txt压缩成test.txt.bz2: ``` bzip2 test.txt ``` 3. zip命令 zip命令用于将多个文件或目录打包成一个zip格式的压缩文件,其格式如下: ``` zip [选项] 压缩文件名 源文件/目录 ``` 常用选项包括: - -r:递归处理目录下的所有文件; - -q:静默模式,不显示压缩过程; - -e:加密压缩文件。 例如,将目录test打包成test.zip: ``` zip -r test.zip test ``` 4. tar命令 tar命令可以将多个文件或目录打包成一个tar格式的压缩文件,其格式如下: ``` tar [选项] 目标文件名 源文件/目录 ``` 常用选项包括: - -c:创建压缩文件; - -x:解压文件; - -z:通过gzip压缩/解压文件; - -j:通过bzip2压缩/解压文件; - -v:显示处理的文件列表。 例如,将目录test打包成test.tar.gz: ``` tar -czvf test.tar.gz test ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值