Linux下压缩、解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.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 各种压缩比率,占用时间对比

(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

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

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

结论:

再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)。

浅谈Linux下各种压缩 解压命令和压缩比率对比的更多相关文章

  1. Linux下常用压缩 解压命令和压缩比率对比

    常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...

  2. Linux下常用压缩 解压命令与压缩比率对比

    常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...

  3. 【转】Linux下常用压缩 解压命令和压缩比率对比

    https://www.cnblogs.com/joshua317/p/6170839.html 常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU ...

  4. linux下的文件解压命令

    说一下tar命令的参数含义:z,使用gzip解压,x:extract解压,v:显示详细信息,f:使用归档在当前文件夹. 在解压时出现了解压失败,原因是没有sudo,无法创建文件夹.

  5. Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

    刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...

  6. tar.xz如何解压:linux和windows下tar.xz解压命令介绍

    在linux下怎么解压和压缩tar.xz文件? (本文由www.169it.com搜集整理) 在linux下解压tar.xz文件步骤 1 2 # xz -d ***.tar.xz  //先解压xz # ...

  7. linux中tar及压缩解压命令用法

    把常用的tar解压命令总结下,当作备忘: tar 命令可以为Linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向 档案中加入新的文件.t ...

  8. linux命令:压缩解压命令

    压缩解压命令:gzip 命令名称:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项  [文件] 功能描述:压缩文件 压缩后文件格式:g ...

  9. [Linux] 016 压缩解压命令

    1. 压缩解压命令:gzip 命令名称:gzip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip [文件] 功能描述:压缩文件 压缩后文件的格式:.gz 补充: 解压 .rar ...

随机推荐

  1. 关于DOM的有关总结

    1.获取DOM元素 document.getElementById()  通过id获取DOM元素 document.getElementsByClassName() 通过类名获取DOM元素 docum ...

  2. 写PPT的先扬后抑的思路

    近期给一个客户做IT战略规划. 基本结束了,客户要求写点有高度的东西.我想也是,尽管眼下的PPT也触及到战略和行业的问题,可是没有总结出来.于是就挖空心思,琢磨了三天.写了4页PPT.改动了几遍.还算 ...

  3. screenX, clientX, pageX

    screenX:鼠标相对屏幕左上角的水平偏移量. clientX:鼠标相对于浏览器左上角的水平偏移量,会随着滚动条的移动而移动. pageX:鼠标相对浏览器左上角的水平偏移量.不会随着滚动条的移动而移 ...

  4. linux中关闭程序或进程

  5. php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习)

    php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习) 一.总结 1.递归不优化的话,30层开外就有点吃力了 2.php因为定义变量的时候不用定义变量类型,所以数组里面的类型也是p ...

  6. CSS布局开篇

    原文: 简书原文:https://www.jianshu.com/p/2c78b927f8c4 开篇 这是我写CSS布局的第一篇文章,之所以将布局从中摘出来单独放一部分是因为我觉得光是布局这块内容就有 ...

  7. 各种排序算法的分析及java实现 分类: B10_计算机基础 2015-02-03 20:09 186人阅读 评论(0) 收藏

    转载自:http://www.cnblogs.com/liuling/p/2013-7-24-01.html 另可参考:http://gengning938.blog.163.com/blog/sta ...

  8. JavaWeb网站技术架构

    JavaWeb网站技术架构总结   题记 工作也有几多年了,无论是身边遇到的还是耳间闻到的,多多少少也积攒了自己的一些经验和思考,当然,博主并没有太多接触高大上的分布式架构实践,相对比较零碎,随时补充 ...

  9. “locktype”enum type 类型重定义问题的解决

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用ado来连接数据库,结果出现这样一些编译错误: 1>f:\c++pro\iocptser\debug\msa ...

  10. Wampserver 2.5 多网站配置方法

    写在开头:本文适用于wampserver2.5版本号,和wamp的老版本号配置有语法上的差别,笔者正是由于被老版本号的配置办法给整迷糊了所以才总结了一篇针对2.5版本号的配置方法,假设您还停留在1.x ...