各种压缩格式的区别以及使用(tar/zip/rar/tar.gz/7z)

博客背景

想要将一些文件和文件夹统一打包,却不知打包成哪种格式比较好!

认识常用压缩工具

tar

只进行归档,不压缩。例如有10个50k的文件,tar归档之后的大小是10 * 50kB = 500kB大小的tar包。

归档的唯一好处是减少小文件数量,减少小文件对磁盘空间的浪费。

举个例子:

例如磁盘是以FAT文件系统作为文件组织管理系统。假设文件簇大小为4KB,文件size要按照4KB对齐,最小的文件大小都需要4KB。

写入10个文件内容只有1个字符的文件,虽然每个文件内容只有1byte大小,但文件大小最少都要占用一个簇空间,即4KB。那么10个文件就占用10 * 4KB = 40KB。

而如果将10个文件归档成一个tar文件包,只需要一个4KB的簇空间就能装的下,以节省存储空间。

打包命令:tar -cvf xxx.tar [src] [dir] [...]        将src/dir ...等文件打包成xxx.tar

tar.gz

tar.gz是在tar打包的基础上,使用了gzip对tar文件进行压缩。又被简称为.tgz。

压缩命令:tar -czvf xxx.tar.gz [src]        将src文件压缩成xxx.tar.gz

参数说明:

参数z表示操作的类型是tar.gz; 参数c表示当前行为是打包;参数v是显示打包执行过程;参数f是指定打包后的文件名

解压命令:tar -xzvf xxx.tar.gz -C ~/        -C指定解压路径,将xxx.tar.gz解压到~/

参数说明:-x表示行为是解压;参数z表示对象是.tar.gz;参数v是显示解压过程;参数f是指定解压文件名;-C是指定解压到哪里

zip

格式开放且免费,几乎所有的压缩软件都支持该格式。由于出现时间比较早,今日的zip文件与其他压缩格式相比有众多无法忽视的缺点,原生不支持unicode文件名称,导致一部分文件共享困难。

从本地打包上传到服务器的压缩包,一般都是zip或者rar格式,而不是tar包格式。

zip包上传到服务器后,使用unzip命令解压,压缩成zip包使用zip命令

zip和unzip命令需要安装,使用yum直接安装:

yum install zip -y

yum install unzip -y

zip常用参数有 r,q,d

-r 压缩文件夹,递归执行,压缩文件夹下所有文件

-q 不显示压缩过程,默认会在控制台打印压缩文件过程

-d 压缩过程中剔除指定文件, -d参数后跟随的文件不打包到压缩包里

压缩文件夹且排除指定文件不压缩:

zip -r dirpath/ -d a.txt b.text

unzip常用参数有 n,v,d

-n 解压后不覆盖已存在文件,如果压缩包文件中与解压路径有同名文件,跳过该文件

-v 控制台打印显示压缩包内容,但是不解压,-v参数只进行查看

-d 指定解压后文件存放路径

unzip常直接使用,解压到当前路径,覆盖同名文件:

unzip file.zip

解压到指定路径,不覆盖已有同名文件:

unzip -n file.zip -d dirpath/

rar

RAR比ZIP压缩比率高,但压缩/解压速度慢。

7z

是Zip格式的升级,压缩率非常高,但要收费。

压缩格式对比

压缩率

压缩率:7z > RAR > Zip ≈ tar.gz

普遍性

a. zip的应用是最广泛的,win和mac系统在不安装第三方app的情况下也可以打开zip文件,是其它压缩格式不具备的优势。

b. rar虽然压缩率很高,但收费。

c. 7z文件格式也不一定免费。

d.tar.gz跟zip相差不大,在linux中应用广泛,不过在其它系统中需要安装相应工具。

常见压缩工具

Linux系统的tar命令用于tar/tar.gz格式的压缩和解压缩

gzip命令用于.gz格式的压缩和解压缩;

zip命令用于zip包的压缩,unzip命令用于.zip格式的解压缩;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值