码迷,mamicode.com
首页 > 其他好文 > 详细

四周第四次课(3月1日)

时间:2018-03-01 20:15:22      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:linux   学习   笔记   

6.1 压缩打包介绍

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文件内容


四周第四次课(3月1日)

标签:linux   学习   笔记   

原文地址:http://blog.51cto.com/13578154/2074349

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!