6.2 gzip压缩工具
6.3 bzip2压缩工具
6.4 xz压缩工具
6.1 压缩打包介绍
常见压缩文件
windows .rar .zip .7z
Linux .zip .gz .bz2 .xz .tar.gz .tar.bz2 .tar.xz
虽然后缀名在Linux上没意义,但是压缩格式应该遵循linux定义的格式来定义,以免造成错误识别。
6.2 gzip压缩工具
介绍
gzip不能压缩目录
gzip压缩工具
gzip 1.txt
gzip -d 1.txt.gz / unzip 1.txt.gz
gzip -# 1.txt //#范围1-9,默认6
不能压缩目录
zcat 1.txt.gz
gzip -c 1.txt > /root/1.txt.gz
gunzip -c /root/1.txt.gz > /tmp/1.txt.new
实操test
#cd /tmp
#mkdir d6z
#cd d6z/
#ls
# find /etc/ -type f -name "*conf" 搜索/etc/下的conf结尾的文件
把搜索到的内容追加输出到1.txt下面
# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;
连续追加几次内容至1.txt 让膨胀成2.2M 左右。
# du -sh 1.txt
2.0M 1.txt
使用gzip压缩1.txt
# gzip 1.txt
# ls
1.txt.gz
#du -sh 1.txt.gz 1.txt压缩后,文件名直接变成了1.txt.gz,且大小也变小了。
372K 1.txt.gz
#wc -l 1.txt
36468 1.txt
使用gzip -d 来解压(#gunzip filename 同样是gzip的解压命令,效果效果一样)
# gzip -d 1.txt.gz
# du -sh 1.txt
1.4M 1.txt
解压后发现1.txt比原来没压缩前的1.txt还要小。这是因为实际上,文件还有一些虚的空间存在着,通过压缩与解压可以把虚的空间给挤掉。如果我们觉得文件内容可能被削减了,我们可以通过#wc -l 去检查文件行数。
#wc -l 1.txt 行数没被削减,内容也应该没被削减。
36468 1.txt
压缩等级
gzip压缩等级分为1-9,默认为6级。随着级数越大,严谨性越大,如果等级设为9级,则耗用CPU资源很大。所以,一般压缩级别设置为默认级别就可以。
查看1.txt.gz文件属性。
#file 1.txt.gz
1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Thu Mar 1 14:53:39 2018
查看压缩文件的内容(原理是:先解压,再cat)
#zcat 1.txt.gz
压缩时 文件指定某个位置或某个目录下,并且不让该文件消失,生成一个新的文件。(-c选项)
#gzip -d 1.txt.gz 先解压
#gzip -c 1.txt > /tmp/1.txt.gz 指定位置
#ls /d6z/1.txt没有消失
1.txt
# ls /tmp/1.txt.gz /tmp/下面多了一个1.txt.gz的文件
/tmp/1.txt.gz
# file /tmp/1.txt.gz 查看1.txt.gz属性
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Thu Mar 1 14:53:39 2018
指定解压并且保留源文件。
# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt
# ls
1.txt 2.txt
# wc -l 1.txt 2.txt
36468 1.txt
36468 2.txt
72936 总用量
其实两个文件内容都一样,源自同一个文件出来的,所以利用#wc -l查看行数是否一样检查数据是否配对。 一样的话即成功。
# du -sh *.txt
1.4M 1.txt
1.4M 2.txt
文件大小也是一样,由此证明,指定压缩和解压都不影响文件内容和大小。
6.3 bzip2压缩工具
用法跟gzip差不多。
# bzip2 1.txt
#ls
1.txt.bz2 2.txt
# du -sh 1.txt.bz2
156K 1.txt.bz2 从bzip2压缩后的文件大小可以看出,bzip2的压缩有多狠,因为gzip压缩同一个文件都是300多K
# du -sh 2.txt
1.4M 2.txt
压缩之前的文件是1.4M
解压
# bzip2 -d 1.txt.bz2
# bunzip2 1.txt.bz2
同样也支持# bzip2 -c 指定位置
#bzip2 -c 1.txt > /tmp/1.txt.bz2
默认压缩级别9
#bzip2 -9 1.txt
如果有些压缩文件没被改成压缩后缀,我们可以通过#file命令来查看属性。
[root@centos7 d6z]# ls
1.txt.bz2 2.txt 3.txt
[root@centos7 d6z]# mv 1.txt.bz2 1.txt
[root@centos7 d6z]# ls
1.txt 2.txt 3.txt
[root@centos7 d6z]# less 1.txt
"1.txt" may be a binary file. See it anyway? 大意是说,这是一个二进制文件,是否继续查看。
[root@centos7 d6z]# file 1.txt 通过#file可以得知这是一个bzip2文件。
1.txt: bzip2 compressed data, block size = 900k
6.4 xz压缩工具
xz跟tar的关系比较关联。
用法与gzip,bz2差不多
xz同样也不能压缩目录
# xz 2.txt
# du -sh 1.txt.bz2 2.txt.xz 3.txt xz压缩比bz2还要狠,压缩后的文件大小比bzip2压缩还要小。
156K 1.txt.bz2
56K 2.txt.xz
1.4M 3.txt
解压
#xz -d 2.txt.xz
#unxz 2.txt.xz
保留原来的文件指定到位置生成压缩文件
# xz -c 2.txt > /tmp/2.txt.xz 保留原来的文件,把它指定到/tmp/进行压缩,生成2.txt.xz压缩文件。
# xz -d -c /tmp/2.txt.xz > /tmp/d6z/4.txt 解压缩一个2.txt.xz并且指定解压缩到/tmp/d6z,同时保留原来的压缩文件。
#xzcat /tmp/2.txt.zx 查看.zx文件内容
原文地址:http://blog.51cto.com/13578154/2074349