问题背景
最近在做一项自动化的任务,其中就包括一个导出的文件需要进行打包保存,但是由于文件过大,打包时间太久了,基本都要在15分钟+,于是就了解了一下Linux系统下常用的打包方式以及其相应的优缺点,最终确认一下使用哪种方式。
常用方式
.tar
- 优点:只消耗非常少的CPU及时间打包
- 缺点:只是一个打包工具,并不负责压缩
所以其打包之后的大小基本和原文件相差不大,
//压缩
zip -r test.zip test
//解压
unzip test.zip //直接解压
unzip test.zip -d test2/ //解压到test2/
.tar.gz
- 优点:压缩时不会占用太多的CPU,就可以得到一个非常理想的压缩率。
- 缺点:比较中庸
//压缩
tar -zcvf test.tar.gz test
//解压
tar -zxvf test.tar.gz
tar -zxvf test.tar.gz -C test2/
.tar.xz
- 优点:压缩率最高
- 缺点:但需要压缩的时间较长。
//压缩
tar -Jcvf test.tar.xz test //压缩
//解压
tar -Jxvf test.tar.x //直接解压
.tar.bz2
- 优点:压缩率几乎最好的
- 缺点:以时间换空间
//压缩
tar -jcvf test.tar.bz2 test
//解压
tar -jxvf test.tar.bz2
tar -jxvf test.tar.bz2 -C test2/
.zip
- 优点:常用的文档压缩格式,跨平台,
- 缺点:支持的压缩率不是很高。
//压缩
zip -r test.zip test
//解压
unzip test.zip //直接解压
unzip test.zip -d test2/ //解压到test2/
.7z
- 优点: 压缩率高
- 缺点: 压缩时间长,文件损坏不易恢复
//压缩
7z a -r test.7z test/*
//解压
7z x test.7z -r -otest2/
-r 表示递归所有的子文件夹
-o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录
最终选择
所以,所以最终选择了什么呢?
目前选择的zip,不光上述优缺点,还考虑到的易用性。
评论区