浅谈Linux下各种压缩 解压命令和压缩比率对比
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下各种压缩 解压命令和压缩比率对比的更多相关文章
- Linux下常用压缩 解压命令和压缩比率对比
常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...
- Linux下常用压缩 解压命令与压缩比率对比
常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...
- 【转】Linux下常用压缩 解压命令和压缩比率对比
https://www.cnblogs.com/joshua317/p/6170839.html 常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU ...
- linux下的文件解压命令
说一下tar命令的参数含义:z,使用gzip解压,x:extract解压,v:显示详细信息,f:使用归档在当前文件夹. 在解压时出现了解压失败,原因是没有sudo,无法创建文件夹.
- Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋
刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...
- tar.xz如何解压:linux和windows下tar.xz解压命令介绍
在linux下怎么解压和压缩tar.xz文件? (本文由www.169it.com搜集整理) 在linux下解压tar.xz文件步骤 1 2 # xz -d ***.tar.xz //先解压xz # ...
- linux中tar及压缩解压命令用法
把常用的tar解压命令总结下,当作备忘: tar 命令可以为Linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向 档案中加入新的文件.t ...
- linux命令:压缩解压命令
压缩解压命令:gzip 命令名称:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项 [文件] 功能描述:压缩文件 压缩后文件格式:g ...
- [Linux] 016 压缩解压命令
1. 压缩解压命令:gzip 命令名称:gzip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip [文件] 功能描述:压缩文件 压缩后文件的格式:.gz 补充: 解压 .rar ...
随机推荐
- POJ 3264 Balanced Lineup 线段树RMQ
http://poj.org/problem?id=3264 题目大意: 给定N个数,还有Q个询问,求每个询问中给定的区间[a,b]中最大值和最小值之差. 思路: 依旧是线段树水题~ #include ...
- POJ 3278 Catch That Cow(BFS 剪枝)
题目链接:http://poj.org/problem?id=3278 这几次都是每天的第一道题都挺顺利,然后第二道题一卡一天. = =,今天的这道题7点40就出来了,不知道第二道题在下午7点能不能出 ...
- Altium Designer如何重命名文件
- Diskpart工具应用两则:MBR/GPT分区转换 & 基本/动态磁盘转换
将基本磁盘转换为动态磁盘可直接在操作系统的磁盘管理中完毕,如图1所看到的,这一转换过程对硬盘上的数据没有影响,可是可能会影响到系统的启动(盗版系统激活会受影响). 图1:基本磁盘转换为动态磁盘 要注意 ...
- js模仿块级作用域(js没有块级作用域私有作用域)
js模仿块级作用域(js没有块级作用域私有作用域) 一.总结 1.js没有块级作用域:在for循环中定义的i,出了for循环还是有这个i变量 2.js可以模拟块级作用域:用立即执行的匿名函数:(匿名函 ...
- js课程 2-7 带默认参数的函数怎么写
js课程 2-7 带默认参数的函数怎么写(注意参数顺序) 一.总结 一句话总结:默认参数一定要放在最后面,而且还有注意你调用参数的时候给参数的顺序习惯.直接加个等于号就可以是默认参数.function ...
- mysql数据库 navicat premium mac 破解教程
https://www.jianshu.com/p/f3ef78deadaa 转自Navicat Premium for Mac v12.0.22.0 破解教程,macOS上手动破解,无需补丁,无毒 ...
- Mariadb配置文件优化参数(仅供参考)
[client]#password= your_passwordport= 3306 socket= /tmp/mysql.sock!includedir /opt/local/mys ...
- Intent七在属性之一:ComponentName 分类: H1_ANDROID 2013-11-10 10:54 1184人阅读 评论(1) 收藏
注:在<疯狂android讲义>中,此属性称为Component,官方文档中称为ComponentName. 1.The name of the component that should ...
- jQuery中serializeArray方法的使用及对象与字符串的转换
使用jQuery中的serializeArray()方法可以方便的将表单中的各个信息,转化为多个{name:xx,value:xx}对象的数组, 再使用遍历的方式可以方便的将数组转化为json对象, ...