压缩方法有哪些?各有什么优缺点,压缩比是多少呢?主要是在linux下代码压缩的?rar或zip大部分都是win下
2个回答
展开全部
压缩比率很难说,未压缩数据的复杂程度会影响这个比率。
常见压缩算法按压缩比率由大到小排:
paq系 > lzma系 > rar > bzip2 > lz系(gz、zip) > lzo
paq相当费时而且耗内存,有点不值得使用;lzma是目前硬件水平可接受的高压缩比算法(7z就属于此类洐生品);rar没什么好说的,商业算法,我觉得比bzip2费时上还好点;lzo虽然压缩比率不那么历害,但高速、内存需求极少是其亮点,在需要实时压缩、解压的场合非常受欢迎,例如网络通迅、数据库。
linux中最常用tar.gz格式(winrar支持解压)。
命令通常是这样: tar czvf abc.tar.gz name1 name2 ...
解释一下参数czvf
c 建立
v 详细信息
f 输出文件,后面一定跟生成的压缩文件名。
z 用gz压缩
(其它压缩还有:
Z compress压缩,几乎没人用的老旧lz算法
j bzip2压缩
J xz压缩,lzma的改进算法
也可在最后加参数 --lzop 或 --lzip 或 --lzma)
生成tar.gz其实经过两个处理过程的,首先tar将所有文件的信息集合成一个无压缩的tar格式(无需写到磁盘),再用gz压缩算法处理(很像rar的solid选项)。这样的坏处是,如果你只要解压其中一个文件,解压时也要读取压缩文件前面很大部分内容。
常见压缩算法按压缩比率由大到小排:
paq系 > lzma系 > rar > bzip2 > lz系(gz、zip) > lzo
paq相当费时而且耗内存,有点不值得使用;lzma是目前硬件水平可接受的高压缩比算法(7z就属于此类洐生品);rar没什么好说的,商业算法,我觉得比bzip2费时上还好点;lzo虽然压缩比率不那么历害,但高速、内存需求极少是其亮点,在需要实时压缩、解压的场合非常受欢迎,例如网络通迅、数据库。
linux中最常用tar.gz格式(winrar支持解压)。
命令通常是这样: tar czvf abc.tar.gz name1 name2 ...
解释一下参数czvf
c 建立
v 详细信息
f 输出文件,后面一定跟生成的压缩文件名。
z 用gz压缩
(其它压缩还有:
Z compress压缩,几乎没人用的老旧lz算法
j bzip2压缩
J xz压缩,lzma的改进算法
也可在最后加参数 --lzop 或 --lzip 或 --lzma)
生成tar.gz其实经过两个处理过程的,首先tar将所有文件的信息集合成一个无压缩的tar格式(无需写到磁盘),再用gz压缩算法处理(很像rar的solid选项)。这样的坏处是,如果你只要解压其中一个文件,解压时也要读取压缩文件前面很大部分内容。
更多追问追答
追问
感谢你的回答。
我现在最弄不明白的是压缩软件,压缩算法,压缩格式的区别,比如winrar是软件,但是用什么压缩算法?压缩后的格式一定是.rar吗,再比如LZMA到底是压缩算法还是压缩软件?还是一种压缩格式?
是不是像winrar或者7-zip这种软件里面也用lzma算法进行压缩,但是生成的压缩包也能够是.rar或者.zip或者.7z?
追答
算法就是"计算方法"的意思了,lzma当然是指算法。
压缩格式是儲存在文件所用的数据结构。
.rar格式用的是rar算法
.7z格式用lzma算法
……
压缩软件支持什么算法、什么格式倒没什么规矩可言,当然是支持越多越能方便用户了。
大多数的压缩算法是公开的,哪个软件都能用。
但rar是有版权的算法,即使你知道算法也不能集成在自己写的代码里,最多是调用外部软件(rar/unrar)实现支持rar文件。只有rar版权所属的公司出的软件(winrar/rar/unrar)能合法地使用rar算法。
winrar软件本来就是加、解压rar文件的软件,为了吸引用户,集成很多算法,支持很多格式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询