本人有一个待解决的问题:当需要压缩比较大的文件,比如1T的时候,如何看到压缩文件进度?挂在后台完全没办法知道最后压缩的文件是不是完整!
linux常用的压缩格式为:zip,tar.gz,tar,tar.bz2等,不同的方式消耗的时间和压缩比差异比较大
1.zip
(1) 压缩命令:
zip -r test.zip test
-r 表示当前test是个目录
(2) 解压命令:
unzip test.zip
2.tar:
打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来
(1) 打包动作:
tar -cvf test.tar test
-c: --create create a new archive 创建一个归档文件
-v: --verbose verbosely list files processed 显示创建归档文件的进程
-f: --file=ARCHIVE use archive file or device ARCHIVE 后面要立刻接被处理的档案名,比如–file=examples.tar
(2) 解包动作:
tar -xvf examples.tar
-x: --extract, extract files from an archive 从一个归档文件中提取文件
3.tar.gz
tar.gz和tgz是同一种形式,后一种是前一种的简写形式,对归档文件采用gzip算法进行压缩。
(1) 压缩命令:
tar -zcvf test.tar.gz test
-z, --gzip filter the archive through gzip 通过gzip压缩的形式对文件进行归档
(2) 解压命令:
tar -zxvf test.tar.gz
4.tar.bz
另一种压缩格式
(1) 压缩命令:
tar -jcvf test.tar.bz2 test
-j, --bzip2 filter the archive through bzip2 通过bzip2压缩的形式对文件进行归档
(2) 解压命令:
tar -jxvf test.tar.bz2
5.rar
(1) 压缩命令:
rar a test.rar test
-j, --bzip2 filter the archive through bzip2 通过bzip2压缩的形式对文件进行归档
(2) 解压命令:
rar x test.rar
6.压缩对比
压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小
zip | tar | tar.gz | tar.bz | rar | |
---|---|---|---|---|---|
压缩前大小 | 402M | 402M | 402M | 402M | 402M |
压缩后大小 | 126M | 402M | 126M | 116M | 119M |
压缩比率 | 3.19 | 1 | 3.19 | 3.46 | 3.38 |
压缩耗时 | 0m41.165s | 0m0.560s | 0m41.972s | 1m3.868s | 0m31.176s |
解压耗时 | 0m5.450s | 0m0.653s | 0m5.227s | 0m27.698s | 0m4.491s |
从压缩比率来看,tar.bz>rar>tar.gz(zip)
从压缩耗时来看,rar>tar.gz(zip)>tar.bz
从解压耗时来看,rar>tar.gz(zip)>tar.bz