赞
踩
大家好,我是半虹,这篇文章来讲 Linux 系统中常用的文件压缩方式
在 Linux 系统中,存在许多打包或压缩文件的工具
这篇文章会对一些常用的工具进行分类整理和介绍
如果只是需要知道怎么对不同格式的文件做解压缩,可以直接跳转到本文最后的总结部分
如果希望了解不同压缩工具的使用方法和应用场景,那么可以跟随正文一起进行深入探讨
好了,下面是正文部分
tar
命令本质上是用于打包文件,并不会做压缩,其打包的文件通常带有 .tar
后缀
命令格式如下:
tar [OPTION...] [FILE]..
常用参数如下:
短参数 | 长参数 | 作用 |
---|---|---|
-c | --create | 打包指定文件到新的包 |
-r | --append | 新增指定文件到已有包 |
-u | --update | 在已有包更新指定文件 |
--delete | 在已有包删除指定文件 | |
-t | --list | 列出包中文件 |
-x | --extract | 还原包中文件 |
-f | --file | 指定包的名称 |
-v | --verbose | 显示详细信息 |
tar
命令在打包之后,可以通过参数调用压缩工具进一步对其进行压缩,使用的参数如下:
短参数 | 长参数 | 压缩工具 | 压缩后的文件后缀 |
---|---|---|---|
-z | --gzip | gzip | .tar.gz / .tgz |
-Z | --compress | compress | .tar.Z |
-j | --bzip2 | bzip2 | .tar.bz2 |
-J | --xz | xz | .tar.xz |
下面通过一些简单的例子,了解一下常用的参数组合
# 打包所有后缀为 txt 的文件到新的包 packed.tar tar -cvf packed.tar *.txt # 新增所有后缀为 png 的文件到已有包 packed.tar tar -rvf packed.tar *.png # 更新已有包 packed.tar 所有后缀为 txt 的文件 tar -vf packed.tar --update *.txt # 删除已有包 packed.tar 所有后缀为 png 的文件 tar -vf packed.tar --delete *.png # 列出已有包 packed.tar 所有文件 tar -tvf packed.tar # 还原已有包 packed.tar 所有文件 tar -xvf packed.tar # 打包并压缩【常用】 tar -zcvf packed.tar.gz *.txt # 解压并还原【常用】 tar -zxvf packed.tar.gz *.txt # 实际上对于这种先打包再压缩的文件 # 我们既可以使用上述命令解压并还原 # 同时也可以先用对应工具解压,然后再用 tar 还原或做其它操作 # 解压后缀为 .gz 的文件 gzip -dk xxx.gz # 解压后缀为 .Z 的文件 gzip -dk xxx.Z # 解压后缀为 .bz2 的文件 bzip2 -dk xxx.bz2 # 解压后缀为 .xz 的文件 xz -dk xxx.xz
上面提到的四种压缩方式,这里也做一个简单的介绍
压缩方式 | 文件后缀 | 压缩比率 | 压缩速度 | 解压速度 | 使用场景 |
---|---|---|---|---|---|
gzip | .gz | 适中 | 较快 | 较快 | 十分常用,绝大多数系统都有支持 |
compress | .Z | 较低 | 较快 | 较快 | 极少使用,只会在老系统遇到 |
bzip2 | .bz2 | 较高 | 较慢 | 较慢 | 比较常用,特别是在高压缩比场景 |
xz | .xz | 很高 | 较慢 | 较慢 | 比较常用,特别是在高压缩比场景 |
如果对压缩比例、压缩速度、解压速度在大多数情况下进行排序,大致如下:
xz
> bzip2
> gzip
> compress
gzip
> compress
> bzip2
> xz
gzip
> compress
> bzip2
> xz
对于各压缩算法的使用场景,推荐如下:
gzip
bzip2
或者 xz
下面来测试下各个压缩算法的实际表现
就地取服务器上的一个大型前后端项目,包括程序文件、图片资源、文本资源、模型资源等共 4G 大小
对其进行打包之后压缩,各项指标如下:
测试命令 | 压缩算法 | 压缩后的文件大小 | 压缩时间 | 解压时间 |
---|---|---|---|---|
time tar -cf xxx.tar ./xxx | / | 3.6G | 0m6.003s | 0m24.740s |
time tar -zcf xxx.tar.gz ./xxx | gzip | 2.5G | 2m9.206s | 0m46.089s |
time tar -jcf xxx.tar.bz2 ./xxx | bzip2 | 2.2G | 11m4.117s | 4m45.567s |
time tar -Jcf xxx.tar.xz ./xxx | xz | 1.3G | 20m0.949s | 1m36.590s |
需要注意的是,不同的压缩算法对于不同的文件类型具有很大差异
上述测试旨在提供一个参考,并不能代表所有的情况
除了上述用于打包的 tar
以及同步介绍的 gzip
、compress
、bzip2
、xz
等压缩方式
zip
和 rar
也是很常用的压缩格式,特别是在 Windows 系统上
对于这些 Windows 系统上常用的压缩算法,Linux 也有提供相应的支持
zip
格式,可以使用 zip
命令进行压缩,对应使用 unzip
命令进行解压rar
格式,可以使用 rar
命令进行压缩,对应使用 unrar
命令进行解压文件后缀 | 压缩命令 | 解压命令 |
---|---|---|
.tar | tar -cvf xxx.tar ... | tar -xvf xxx.tar |
.tar.gz / tgz | tar -zcvf xxx.tar.gz ... | tar -zxvf xxx.tar.gz |
.tar.bz2 | tar -jcvf xxx.tar.bz2 ... | tar -jxvf xxx.tar.bz2 |
.tar.xz | tar -Jcvf xxx.tar.xz ... | tar -Jxvf xxx.tar.xz |
.gz | gzip -k ... | gzip -dk xxx.gz |
.bz2 | bzip2 -k ... | bzip2 -dk xxx.bz2 |
.xz | xz -k ... | xz -dk xxx.xz |
.zip | zip xxx.zip ... | unzip xxx.zip |
.rar | rar a xxx.rar ... | unrar e xxx.rar |
好啦,本文到此结束,感谢您的阅读!
如果你觉得这篇文章有需要修改完善的地方,欢迎在评论区留下你宝贵的意见或者建议
如果你觉得这篇文章还不错的话,欢迎点赞、收藏、关注,你的支持是对我最大的鼓励 (/ω\)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。