压缩格式介绍
在Windows下,我们接触最多的压缩文件是.rar格式的,但是在Linux下,不能识别这种格式,它有自己独特的压缩工具。但.zip格式的文件在Windows和Linux下都能使用。使用压缩文件,不仅能节省磁盘空间,而且在传输时还能节省网络宽带。
Linux下最常见的压缩文件通常都是.tar .gz格式的,除此之外,还有.tar , .gz, .bz2 ,.zip等格式。
虽然Linux下文件的后缀名可加可不加,但压缩文件最好加上后缀名。这是为了判断压缩文件是由哪种压缩工具所压缩的,而后才能正确的解压这个文件。在Linux下常见的后缀名所对应的压缩工具
- .gz 表示由gzip压缩工具压缩的文件。
- .bz2 表示由bzip2压缩工具压缩的文件。
- .tar 表示由tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)。
- .tar .gz 可以理解为先由tar打包,然后再由gzip压缩。
- .tar .bz2 可以理解为先由tar打包,然后再由bzip2压缩。
- .tar .xz 可以理解为先由tar打包,然后再xz压缩。
gzip压缩工具
命令语法
gzip(选项)(参数)命令描述
gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。命令选项
-d 该参数在解压时使用;
-# 表示压缩等级,1为最差,9为最好,6为默认;
-c 表示压缩之后原文件不变,压缩文件放到指定的目录;命令示例
- 添加给1.txt文件内容;
[root@localhost d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
252K 1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
704K 1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
1.2M 1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
1.2M 1.txt
[root@localhost d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
[root@localhost d6z]# du -sh 1.txt
2.2M 1.txt
以上代码可以看出在1.txt里增加同样的内容,但是每次增加后的大小并不相同。
- 压缩并解压;
[root@localhost d6z]# du -sh 1.txt
2.2M 1.txt
[root@localhost d6z]# wc -l 1.txt //wc -l 用来计算一个文档的行数。
32375 1.txt
[root@localhost d6z]# gzip 1.txt //压缩1.txt
[root@localhost d6z]# ls
1.txt.gz
[root@localhost d6z]# du -sh 1.txt.gz
332K 1.txt.gz
[root@localhost d6z]# gzip -d 1.txt.gz //解压1.txt
[root@localhost d6z]# ls
1.txt
[root@localhost d6z]# du -sh 1.txt
1.3M 1.txt
[root@localhost d6z]# wc -l 1.txt //显示行数
32375 1.txt
说明:
压缩之前是2.2M,32375个字节。
压缩之后1.txt文件加了一个后缀名.gz,文件大小变成了332K。
解压之后,文件大小变成了1.3M,字节依然没有改变还是32375。
- 设置压缩级别;
[root@localhost d6z]# gzip -9 1.txt //设置压缩级别为9级别
[root@localhost d6z]# du -sh 1.txt.gz
328K 1.txt.gz
[root@localhost d6z]# ls
1.txt.gz
[root@localhost d6z]# zcat 1.txt.gz //查看压缩后的文件内容、
[root@localhost d6z]# gzip -d 1.txt.gz
说明:这里的压缩级别,最小是1,最大是9,默认的6。推荐大家用6级别就行,因为压缩到一定的程度就不会压缩了。而且压缩的级别越大,耗费的cpu资源越大。
- 使用-c选项,压缩之后原文件不变,压缩文件放到/tmp/1.txt.gz中;
[root@localhost d6z]# gzip -c 1.txt > /tmp/1.txt.gz //压缩1.txt并把压缩后的文件放到/tmp下
[root@localhost d6z]# ls
1.txt
[root@localhost d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@localhost d6z]# file !$ //查看压缩后的文件的详细信息
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Nov 10 09:11:57 2017
- 解压,把压缩文件和压缩后的文件放到指定目录;
[root@localhost d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt //解压1.txt文件,并不删除压缩文件,把压缩文件放到/tmp/d6z/2.txt中。
[root@localhost d6z]# wc -l 1.txt 2.txt //计算总行数
32375 1.txt
32375 2.txt
64750 总用量
[root@localhost d6z]# du -sh *.txt
1.3M 1.txt
1.3M 2.txt
bzip2压缩工具
命令语法
bzip2 [-dz] filename //压缩时,加或不加-选项都可以压缩文件。命令描述
gzip命令用来压缩文件。bzip2是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.bz”扩展名。命令选项
-d 解压
-z 压缩<可加可不加>命令示例
- 安装bzip2
#yum install -y bzip2
[root@localhost d6z]# bzip2 1.txt //使用bzip2压缩1.txt;
[root@localhost d6z]# ls
1.txt.bz2 2.txt
[root@localhost d6z]# du -sh 1.txt.bz2 //查看使用bzip2压缩后的1.txt文件大小;
160K 1.txt.bz2
[root@localhost d6z]# du -sh 2.txt //查看使用gzip压缩后的1.txt文件大小,可见bzip2压缩后的文件更小一点;
1.3M 2.txt
[root@localhost d6z]# bzip2 -d 1.txt.bz2 //解压bzip2压缩的1.txt文件;
[root@localhost d6z]# bzip2 1.txt //压缩1.txt文件;
[root@localhost d6z]# bunzip2 1.txt.bz2 //使用bunzip2压缩1.txt文件。 和bzip2压缩一样;
[root@localhost d6z]# ls
1.txt 2.txt
[root@localhost d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2 //使用-c选项,把压缩后的1.txt 放到 /tmp/1.txt.bz2中;
[root@localhost d6z]# du -sh /tmp/1.txt.bz2
160K /tmp/1.txt.bz2
[root@localhost d6z]# bzip2 -d -c /tmp/1.txt.bz2 >3.txt //解压并指定目录,把解压后的文件重命名为3.txt;
[root@localhost d6z]# ls
1.txt 2.txt 3.txt
[root@localhost d6z]# du -sh 3.txt //查看解压后的文件大小;
1.3M 3.txt
[root@localhost d6z]# bzip2 -9 1.txt //使用bzip2的9级别压缩1.txt文件;
[root@localhost d6z]# du -sh 1.txt.bz2 //查看压缩后的文件大小;
160K 1.txt.bz2
[root@localhost d6z]# file 1.txt.bz2 //查看压缩后的文件详细信息;
1.txt.bz2: bzip2 compressed data, block size = 900k
[root@localhost d6z]# bzcat 1.txt.bz2 //查看压缩后的文件内容(由于文件内容过大,不在显示)
xz压缩工具
命令语法
xz [-dz] filename命令描述
xz命令用来压缩文件。文件经它压缩过后,其名称后面会多处“.xz”扩展名命令选项
-z 压缩<此选项可加可不加>
-d 解压命令示例
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt
[root@localhost d6z]# xz 2.txt //使用xz工具压缩2.txt文件;
[root@localhost d6z]# ls
1.txt.bz2 2.txt.xz 3.txt
[root@localhost d6z]# du -sh 2.txt.xz //查看压缩后的文件大小;
60K 2.txt.xz
[root@localhost d6z]# xz -d 2.txt.xz //使用-d选项解压xz压缩的文件;
[root@localhost d6z]# xz 2.txt //使用xz工具压缩2.txt文件;
[root@localhost d6z]# unxz 2.txt.xz //使用unxz解压2.txt文件;
[root@localhost d6z]# ls
1.txt.bz2 2.txt 3.txt
[root@localhost d6z]# xz -c 2.txt > /tmp/2.txt.xz //压缩后,原文件不消失,并把压缩后的文件重定向到/tmp/2.txt.xz中;
[root@localhost d6z]# xz -d -c /tmp/2.txt.xz > ./4.txt //解压xz的文件并且指定解压到./4txt中,同时保留压缩文件。
[root@localhost d6z]# xzcat /tmp/2.txt.xz //查看压缩后的文件内存