lz zstd 后缀的文件解压以及压缩应用

Linux的复杂可能在压缩文件以及解压缩方面有所体现,Linux下常用压缩格式为tar.gz,tar.xz,tar.bz2,zip,在Windows常用的rar反而比较少见。 压缩文件(文件夹)的目的一般为备份系统以及重要文件以节约磁盘空间,压缩网络传输文件以节约有限的网络带宽,仅此两个目的。出于此目的,由于算法的不同,压缩比率也是千差万别,因此又有lz格式,lz4和zstd格式的文件。

lz格式的文件具有更高的压缩比,一般压缩后的体积为gz格式的四分之一或者五分之一。zstd是deb格式文件打包成tar的形式出现。

一,lz格式的解压缩和压缩以及与gz格式压缩对比

lz格式的文件解压缩和压缩的基础命令为lzip(在centos系列为这个命令),该命令需要安装,安装命令为  yum install lzip -y

(1),压缩 系统文件夹 /etc

首先,保存/etc文件夹到当前目录,cp -r /etc .     ,lzip 只能压缩文件而并不能压缩文件夹,这点需要注意,因此有两个选择,一个是先使用tar命令打包 /etc这个文件夹,一个是两个命令联合使用先打包然后lzip接着压缩处理。

命令如下: tar  cvf etc.tar.lz etc --lzip (联合命令)

tar cvf  etc.tar.gz etc 

lzip -v -k -9 etc.tar.gz(分步命令)  其中的参数代表的意思分别为:-v 表示输出详细信息,-k保留原始文件,也就是不删除那个gz文件,-9表示最高压缩比,等于 --best

[root@centos7 mnt]# lzip -kv -9 etc.tar.gz 
  etc.tar.gz:  4.607:1,  1.736 bits/byte, 78.30% saved, 33761280 in, 7327573 out.

#输出表示压缩比4.6.07:1 ,也就是接近5比1,原文件大小33761280byte,压缩后大小7327573byte。

经过观察,可以看到lzip压缩比是明显的高于其余命令,原始etc文件夹容量为36M,tar.gz 默认压缩为33M,lz压缩后为7M,当然,这么高的压缩比是性能和时间的牺牲,越大的文件压缩需要的时间越多哦。

-rw-r--r--   1 root root  33M Dec  1 10:56 etc.tar.gz
       -rw-r--r--   1 root root 7.0M Dec  1 10:56 etc.tar.gz.lz

(2),解压lz格式的文件

解压命令就简单了,lzip -d  要解压缩的文件名    如果有tar的壳就脱壳,没有就接压缩了。以本例为例, lzip -d etc.tar..lz 后会得到  etc.tar.gz 文件,没有加  -k参数因此原lz格式文件被删除了,在解压 etc.tar.gz 文件就得到了文件夹哦。

二,zstd格式文件解压缩(centos系列内)

同样需要安装zstd命令,命令如下:

yum install zstd -y
tar -I zstd -xvf frpc-0.33.0-1-x86_64.pkg.tar.zst      tar命令的 
-I 参数是指定解压缩使用哪个命令的意思 -I, --use-compress-program=PROG

 

 


 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐