6.1 压缩打包介绍
Linux的压缩文件格式有:.zip、.gz、.bz2、.xz、.tar.gz、.tar.bz2、.tar.xz
文件压缩打包的主要目的:方便文件传输、减少传输花费的时间、节省带宽。
6.2 gzip压缩工具
使用gzip命令可以压缩或解压缩gz文件,但不能压缩目录文件。
gzip [选项] filename
- [ ] -d:将压缩文件进行解压缩
- [ ] -#:压缩等级,1为最差,9为最好,6为默认。
- [ ] -c:将输出写到标准输出上,并保留源文件。
下面做实验。先生成一个文件,用这个文件执行命令gzip。
find /etc/ -type f -name "*conf" -exec cat{} >> 1.txt ;
把/etc目录中的,文件类型为f的,内容含有conf的文件,用cat逐一查看内容,并将所有内容输出到1.txt中。
- 直接压缩文件
[root@greenfinch d6z]# du -sh 1.txt ## 查看文件压缩前的大小3.7M 1.txt[root@greenfinch d6z]# wc -l 1.txt ## 查看文件内容的总行数44835 1.txt[root@greenfinch d6z]# gzip 1.txt[root@greenfinch d6z]# ls1.txt.gz ## 执行gzip命令后,原文件已消失。[root@greenfinch d6z]# du -sh 1.txt.gz ## 查看文件压缩后的大小460K 1.txt.gz[root@greenfinch d6z]# gzip -d 1.txt.gz ## 解压缩1.txt.gz文件[root@greenfinch d6z]# ls1.txt ## 解压缩后,.gz文件已消失[root@greenfinch d6z]# du -sh 1.txt1.8M 1.txt ## 显示1.txt文件,较压缩前的文件,已去了冗余。[root@greenfinch d6z]# wc -l 1.txt44835 1.txt ## 解压后的文件与原文件的行数一致,数据没改动。[root@greenfinch d6z]# gzip -1 1.txt ## 压缩等级选1时,注意与原文件大小的比较。[root@greenfinch d6z]# du -sh 1.txt.gz540K 1.txt.gz[root@greenfinch d6z]# gunzip 1.txt.gz[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# gzip -9 1.txt ## 压缩等级选9时,注意与原文件和压缩等级为1时的大小的比较。[root@greenfinch d6z]# du -sh 1.txt.gz456K 1.txt.gz[root@greenfinch d6z]# file 1.txt.gz ## 查看文件属性1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Aug 25 02:17:27 2017, max compression
- 指定压缩目录,保留源文件。
[root@greenfinch d6z]# gzip -d 1.txt.gz[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# gzip -c 1.txt > /tmp/1.txt.gz ## 将d6z目录中的1.txt压缩后输出到/tmp目录中,保留d6z目录中的1.txt文件。[root@greenfinch d6z]# ls1.txt[root@greenfinch d6z]# ls /tmp/1.txt.gz/tmp/1.txt.gz[root@greenfinch d6z]# file !$file /tmp/1.txt.gz/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Aug 25 02:17:27 2017[root@greenfinch d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt ## 将/tmp/1.txt.gz文件解压缩,形成的文件输出到/tmp/d6z目录中,并更名为2.txt。/tmp目录中的1.txt.gz文件保留。[root@greenfinch d6z]# ls1.txt 2.txt[root@greenfinch d6z]# wc -l 1.txt 2.txt ## 两个文件的字符数一致 44835 1.txt 44835 2.txt 89670 总用量[root@greenfinch d6z]# du -sh *.txt1.8M 1.txt1.8M 2.txt
另,zcat 1.txt.gz,命令中的zcat可用来查看压缩文件中的内容。
6.3 bzip2压缩工具
如果系统没有这个软件,先安装软件包:yum install -y bzip2
命令bzip2,压缩或解压缩bz2文件,但不支持压缩目录。比命令gzip的压缩效率高,默认压缩等级为最高级9。
bzip2 [选项] filename
-
[ ] -d:解压缩
-
[ ] -z:执行压缩。可以不加这个参数。
-
压缩
[root@greenfinch d6z]# bzip2 1.txt[root@greenfinch d6z]# ls1.txt.bz2 2.txt 3.txt 4.txt 6.txt[root@greenfinch d6z]# du -sh 1.txt.bz2180K 1.txt.bz2
- 解压缩
[root@greenfinch d6z]# bzip2 -d 1.txt.bz2[root@greenfinch d6z]# ls1.txt 2.txt[root@greenfinch d6z]# du -sh *.txt1.8M 1.txt1.8M 2.txt
另,命令bzcat可用来查看压缩文件中的内容。
6.4 xz压缩工具
如果系统没有这个软件,先安装软件包:yum -y install xz
命令xz,用来压缩或解压缩xz文件,但不支持压缩目录。比命令bzip2的压缩效率还高,但占用系统资源较多。
另,命令xzcat可用来查看压缩文件中的内容。