linux+压缩率最⾼的命令,Linux压缩解压命令tar、tgz、tar.bz2
压缩⽐率对⽐
在Linux系统下⽤户最常⽤到的压缩解压命令是tar、(tgz)、tar.bz2,当然还有gz、zip、rar,下⾯将对tar、(tgz)、tar.bz2这三个命令进⾏压缩⽐率对⽐,看哪个压缩解压命令效率更⾼,哪个才是Linux下压缩解压的最佳格式,下⾯是具体测试。
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⽬录下
、tgz
<和tgz只是两种不同的书写⽅式,后者是⼀种简化书写,等同处理。这种格式是Linux下使⽤⾮常普遍的⼀种压缩⽅式,兼顾了压缩时间(耗费CPU)和压缩空间(压缩⽐率),其实这是对tar包进⾏gzip算法的压缩。
(1).打包压缩格式:
tar - examples (examples当前执⾏路径下的⽬录)
说明:
-z, --gzip filter the archive through gzip 通过gzip压缩的形式对⽂件进⾏归档
举例:
tar - dir #dir⽬录
(2).释放解压格式:
tar -zxvf examples.tar (解压⾄当前执⾏⽬录下)
tar -zxvf examples.tar  -C /path (/path 解压⾄其它路径)
举例:
tar -
gzip是什么文件夹tar - -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
附1.gz
压缩:
gzip - examples
解压:
附2.zip
zip 格式是开放且免费的,所以⼴泛使⽤在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很⾼,不如 rar及 等格式。
压缩:
zip -r examples.zip examples (examples为⽬录)
解压:
zip examples.zip
附3.rar
压缩:
rar -a examples.rar examples
解压:
rar -x examples.rar
tar、(tgz)、tar.bz2压缩⽐率,占⽤时间对⽐
为了保证能够让压缩⽐率较为明显,需选取⼀个内容较多、占⽤空间较⼤的⽬录作为本次实验的测试。了⼀个⼤概有23G的⽬录来测试,⾸先要明确由于执⾏环境的变化,误差在所难免。⾸先明确⼀个概念:压缩⽐率=原内容⼤⼩/压缩后⼤⼩,压缩⽐率越⼤,则表明压缩后占⽤空间的压缩包越⼩。
1.tar
打包:
time tar -cvf test.tar /usr/test
时间:
real    3m20.709s
user    0m3.477s
sys    0m42.595s
⼤⼩:
打包前:23214680
打包后:22202984
耗时:3m20.709s
压缩⽐率:22202984/23214680
解压:
time tar -xvf test.tar
⼤⼩:
解压前:22202984
解压后:23211064
耗时:
real    2m47.548s
user    0m4.999s
sys    1m14.186s
<
打包压缩:
time tar - /usr/test
时间:
real    16m30.767s
user    16m1.394s
sys    1m7.391s
⼤⼩:
打包前:23211064
打包后:18949032
耗时:
压缩⽐率:
解压:
tar -zxvf test.tar
⼤⼩:
解压前:18949032
解压后:23211064
耗时:
real    3m52.418s
user    2m46.325s
sys    1m21.442s
3.tar.bz2
打包压缩:
time tar -jcvf test.tar.bz2 /usr/test 时间:
real    80m39.422s
user    80m14.599s
sys    0m58.623s
⼤⼩:
打包前:23211064
打包后:18728904
耗时:80m39.422s
压缩⽐率:
解压:
time tar -jxvf test.tar.bz2
时间:
real    27m54.525s
user    27m44.108s
sys    1m43.645s
⼤⼩:
解压前:18728904
解压后:23211064
结果图
测试结果
综合起来,在压缩⽐率上:tar.bz2>tgz>tar
占⽤空间与压缩⽐率成反⽐:tar.bz2
耗费时间(打包,解压):
打包:tar.bz2>tgz>tar
解压:tar.bz2>tar>tgz
注:从效率⾓度来说,当然是耗费时间越短越好。因此,在Linux系统下对于占⽤空间与耗费时间的折衷多选⽤tgz格式,不仅压缩率较⾼,⽽且打包、解压的时间都较为快速,是较为理想的选择。
总结
本次测试再⼀次印证了物理空间与时间的⽭盾(想占⽤更⼩的空间,得到⾼压缩⽐率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩⽐率⼀定较⼩,当然会占⽤更⼤的空间了)。所以在Linux系统中采⽤何种格式处理解压缩就看你的需求了。
相关主题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。