Linux下常用压缩 解压命令与压缩比率对比
常用的格式有:
tar, tar.gz(tgz), tar.bz2,
不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。
1. tar
只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。
(1)打包归档格式:
- tar -cvf examples.tar files|dir
- #说明:
- -c, --create create a new archive 创建一个归档文件
- -v, --verbose verbosely list files processed 显示创建归档文件的进程
- -f, --file=ARCHIVE use archive file or device ARCHIVE 后面要立刻接被处理的档案名,比如--file=examples.tar
- #举例:
- tar -cvf file.tar file1 #file1文件
- tar -cvf file.tar file1 file2 #file1,file2文件
- tar -cvf file.tar dir #dir目录
- 复制代码
(2)释放解压格式:
- tar -xvf examples.tar (解压至当前目录下)
- tar -xvf examples.tar -C /path (/path 解压至其它路径)
- #说明:
- -x, --extract, extract files from an archive 从一个归档文件中提取文件
- #举例:
- tar -xvf file.tar
- tar -xvf file.tar -C /temp #解压到temp目录下
2. tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理)
这种格式是Linux下使用非常普遍的一种压缩方式,
兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率)
其实这是对tar包进行gzip算法的压缩
(1)打包压缩格式:
- tar -zcvf examples.tgz examples (examples当前执行路径下的目录)
- 说明:
- -z, --gzip filter the archive through gzip 通过gzip压缩的形式对文件进行归档
- 举例:
- tar -zcvf file.tgz dir #dir目录
(2)释放解压格式:
- tar -zxvf examples.tar (解压至当前执行目录下)
- tar -zxvf examples.tar -C /path (/path 解压至其它路径)
- 举例:
- tar -zcvf file.tgz
- tar -zcvf file.tgz -C /temp
3 tar.bz
Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。
但同时在压缩,解压的过程却是非常耗费CPU时间。
(1)打包压缩格式:
- tar -jcvf examples.tar.bz2 examples (examples为当前执行路径下的目录)
- 说明:
- -j, --bzip2 filter the archive through bzip2 通过bzip2压缩的形式对文件进行归档
- 举例:
- tar -jcvf file.tar.bz2 dir #dir目录
(2)释放解压:
- tar -jxvf examples.tar.bz2 (解压至当前执行目录下)
- tar -jxvf examples.tar.bz2 -C /path (/path 解压至其它路径)
- 举例:
- tar -jxvf file.tar.bz2
- tar -jxvf file.tar.bz2 -C /temp
4 gz
压缩:
gzip -d examples.gz examples
解压:
gunzip examples.gz
5 zip
zip 格式是开放且免费的,所以广泛使用在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很高,不如 rar及 tar.gz 等格式。
压缩:
zip -r examples.zip examples (examples为目录)
解压:
zip examples.zip
6 .rar
压缩:
rar -a examples.rar examples
解压:
rar -x examples.rar
压缩比率,占用时间对比
为了保证能够让压缩比率较为明显,需选取一个内容较多、占用空间较大的目录作为本次实验的测试。
找了一个大概有23G的目录来测试,首先要明确由于执行环境的变化,误差在所难免
首先明确一个概念:
压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小
.tar
- 打包:
- time tar -cvf test.tar /usr/test
- 时间:
- real 3m20.709s
- user 0m3.477s
- sys 0m42.595s
- 大小:
- 打包前:
- 打包后:
- 耗时:3m20.709s
- 压缩比率:/
- 解压:
- time tar -xvf test.tar
- 大小:
- 解压前:
- 解压后:
- 耗时:
- real 2m47.548s
- user 0m4.999s
- sys 1m14.186s
.tgz
- 打包压缩:
- time tar -zcvf test.tgz /usr/test
- 时间:
- real 16m30.767s
- user 16m1.394s
- sys 1m7.391s
- 大小:
- 打包前:
- 打包后:
- 耗时:
- 压缩比率:
- 解压:
- tar -zxvf test.tar
- 大小:
- 解压前:
- 解压后:
- 耗时:
- real 3m52.418s
- user 2m46.325s
- sys 1m21.442s
.tar.bz2
- 打包压缩:
- time tar -jcvf test.tar.bz2 /usr/test
- 时间:
- real 80m39.422s
- user 80m14.599s
- sys 0m58.623s
- 大小:
- 打包前:
- 打包后:
- 耗时:80m39.422s
- 压缩比率:
- 解压:
- time tar -jxvf test.tar.bz2
- 时间:
- real 27m54.525s
- user 27m44.108s
- sys 1m43.645s
- 大小:
- 解压前:
- 解压后:
综上结果,初步结论:
综合起来,在压缩比率上: tar.bz2>tgz>tar
占用空间与压缩比率成反比: tar.bz2<tgz<tar
耗费时间(打包,解压)
打包:tar.bz2>tgz>tar
解压: tar.bz2>tar>tgz
从效率角度来说,当然是耗费时间越短越好
因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。
结论:
再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)。
Linux下常用压缩 解压命令与压缩比率对比的更多相关文章
- 浅谈Linux下各种压缩 解压命令和压缩比率对比
Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...
- 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常用命令——压缩解压命令
Linux常用命令——压缩解压命令 Linux gzip 描述:压缩文件 语法:gzip [文件名] 压缩后文件格式:.gz gunzip 描述:解压后缀为.gz的文件 语法:gunzip [文件名 ...
- Linux常用命令6 压缩解压命令
.zip是Linux和Windows共有的压缩格式 1.压缩解压命令:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法: gzip [文件] ...
- linux笔记:linux常用命令-压缩解压命令
压缩解压命令:gzip(压缩文件,不保留原文件.这个命令不能压缩目录) 压缩解压命令:gunzip(解压.gz的压缩文件) 压缩解压命令:tar(打包压缩目录或者解压压缩文件.打包的意思是把目录打包成 ...
- linux中tar及压缩解压命令用法
把常用的tar解压命令总结下,当作备忘: tar 命令可以为Linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向 档案中加入新的文件.t ...
- tar.xz如何解压:linux和windows下tar.xz解压命令介绍
在linux下怎么解压和压缩tar.xz文件? (本文由www.169it.com搜集整理) 在linux下解压tar.xz文件步骤 1 2 # xz -d ***.tar.xz //先解压xz # ...
随机推荐
- POJ 1860——Currency Exchange——————【最短路、SPFA判正环】
Currency Exchange Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I64u S ...
- oracle expdp impdp 数据泵方式
一.不管导入还有导出都要先创建目录 1.登录plsql sqlplus/nolog conn sys/dbwork@orcl 2.创建目录 create directory my_dir as 'd: ...
- javascript 数组方法拼接html标签
var htmls = new Array(); htmls.push("<tr class='otherinfotr'>");htmls.push("< ...
- ejs判断变量是否为空并输出
在ejs里输出变量如下: <%=errmsg%> 但如果errmsg变量不存在则会报错:errmsg is undefined 我们可以改为: <%=locals.errmsg || ...
- ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务解决办法
ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务解决办法: 1.首先打开cmd命令 查看本地TNSPING配置 是否ok?然后找到 Oracle 安装文件 中 listener. ...
- MySQL GROUP_CONCAT长度限制引发的一场灾难
GROUP_CONCAT函数是对查处的分组数据对于分组列相同的数据合并成一列用逗号隔开的函数. 但是该函数的长度有个默认限制,默认是1024个字符,超过就会截断,从而导致用count统计GROUP_C ...
- position 的属性值
理论上来说,全部 position 的取值有8个 包括:position:static | relative | absolute | fixed | sticky | initial | inhe ...
- Android 切换主题换肤实现
思路以及实现 1.主题的切换以及实现 首先我们先来明确个概念,现在我所说的切换主题,就切换整个app的颜色风格,当然也有少部分的图片的切换.注意哦 我这边说的是少部分图片哦!如果是大面积的换图片的吧! ...
- python字符转码
字符的编码与转码 demo UTF-8 转GBK python2.7 默认编码ASCII 没有转Unicode 直接转GBK 1 .系统的默认编码是ASCII , 程序的指定编码是UTF-8,在enc ...
- Java问题定位之如何借助线程堆栈进行问题分析
在大型的应用中,线程堆栈打印出来特别多,如何从众多的信息中找到真正有用,有价值的信息,我们需要一定的技巧.本文对此详细介绍. 我们可以从三个方面分析:堆栈的局部信息,一次堆栈的统计信息,多个堆栈的对比 ...