在传输文件的过程中,传输的文件大小和传输的速度决定传输的时间。当文件特别大的时候,将文件打包压缩可以在一定程度上可以缓解传输的压力,于是压缩和解压缩工具就应运而生了,而压缩工具效果即压缩比取决于设计压缩工具的压缩算法,比如霍夫曼编码就是常见的一种压缩算法,对纯文档的压缩挺有效。
压缩和解压缩工具分为两大类:一类是只可以压缩文档但是不能压缩目录的,另一类是文档目录均可以打包压缩的。
一、针对文档的压缩工具有,以:
1.compress/uncompress,早期的时候应用较多
被淘汰了,不介绍了。。。记得它的后缀名是 .Z 就行。。。
2.gzip/gunzip,取代了compress
压缩文件:gzip [options] file
-#: 指定压缩比为#
-c:将压缩结果输出至标准输出 gzip -c file > path/to/somefile.gz
解压缩文件:gzip -d file 或者gunzip file , 会自动生成 .gz 格式的文档,原来的文档将不存在
不解压直接查看档案内容 zcat-compress file
3.bzip2,压缩效果优于gzip
压缩文件:bzip [options] file
-d:解压缩
-#:指定压缩比,默认是6;数字越大压缩比越大(1-9);
-k:keep,保留原文件,不用做输出重定向
解压缩文件:bzip -d file 或者bunzip2 file ,会自动生成 .bz2格式的文档,原来的文档将不存在
不解压直接查看档案内容: bzcat file
4.xz,在目前来说,压缩效果较前面几个工具提升大,所以更受欢迎
压缩文件:xz [options] file
-d:解压缩
-#:指定压缩比,默认是6;数字越大压缩比越大(1-9);
-k:keep,保留原文件,不用做输出重定向
解压缩文件:xz -d file 或者unxz file ,会自动生成 .bz2格式的文档,原来的文档将不存在
不解压直接查看档案内容: xcat file
提示:压缩比:分为1-9级,等级越高压缩比越大,即效果越好。但是意味着会使cpu更忙碌,默认压缩等级是6.
示例:将/var/log/message 拷贝到 /tmp/compress_test 做压缩性能测试,可以根据后缀名判断使用的哪个压缩工具,可见xz效果最好,截图如下:
二、归档压缩工具:tar
1.tar
语法:tar [option]... FILE... ,但是options里面的 - 可以省略
(1)创建归档
-c -f /path/to/somefile.tar file...
(2)展开归档
-xf /path/from/somefile.tar
-xf /path/from/somefile.tar -C /PATH/TO/SOMEDIR
(3)查看归档文件的文件列表
-tf /path/from/somefile.tar
归档完成后通常需要压缩,结合此前的压缩工具,就能实现压缩多个文件了
(4)归档并压缩
-z:gzip2
-zcf /path/to/somefile.tar.gz FILE...
解压缩并展开归档:-zxf /path/from/somefile.tar.gz 其实可以不用-z,因为可以自动识别
-j:bzip2
-jcf
-jxf
-J:XZ
-Jcf
-Jxf
使用命令:cp -r /etc archive_test/ 将/etc复制到/tmp/archive_test中,归档压缩示例如截图:
补充:若果归档文件名中包含冒号 : ,就会认为是其他服务器上的文字,不予受理,因此需要添加参数,--force-local 把文件强制认为是把它本地的归档
2. zip:
zip/unzip
创建归档压缩: zip file.zip file,需要指定压缩名
后缀名; .zip
示例:
其他命令:压缩纯文档:lzma/unlzma,xzcat
归档:cipo