博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四周第四次课
阅读量:6038 次
发布时间:2019-06-20

本文共 5397 字,大约阅读时间需要 17 分钟。

hot3.png

1. 压缩打包介绍

常见压缩文件

Windows           .rar .zip  .7Z

Linux                  .zip,.gz,bz2,.xz,.tar.gz,tar.bz2,.tar.xz

压缩效果从大到小:xz>tar.gz>gz

2、 gzip压缩工具

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

语法

gzip(选项)(参数)

选项

-a或——ascii:使用ASCII文字模式;-d或--decompress或----:解开压缩文件;-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;-h或——:在线帮助;-l或——list:列出压缩文件的相关信息;-L或——license:显示版本与版权信息;-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;-N或——name:压缩文件时,保存原来的文件名称及时间戳记;-q或——quiet:不显示警告信息;-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;-S或
<压缩字尾字符串>
或----suffix
<压缩字尾字符串>
:更改压缩字尾字符串;-t或——:测试压缩文件是否正确无误;-v或——verbose:显示指令执行过程;-V或——version:显示版本信息;-
<压缩效率>
:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;--best:此参数的效果和指定“-9”参数相同;--fast:此参数的效果和指定“-1”参数相同。

参数

文件列表:指定要压缩的文件列表。

实例

解压缩为1.txt.gz;解压缩1.txt.gz

gzip -d 1.txt.gz          /            unzip 1.txt.gz

gzip -# 1.txt              //#范围1-9,默认6

不能压缩目录。压缩过后的文件是二进制文件。查看文件file+压缩名;使用zcat+压缩包查看内容。

里面的{}表示find 找到的文件。使用du -sh 1.txt,查看1.txt的大小,命令:wc -l 1.txt查看一下行号。

221606_bgqm_3803405.png

直接使用gzip压缩。

222707_MqGF_3803405.png

加上-d解压缩,使用wc -l 1.txt查看一下行数。

222910_h04C_3803405.png

命令:gzip -c 1.txt > /root/1.txt.gz压缩到指定的目录/root/1.txt.gz中去,并保存下来。

命令:gunzip  -c 1.txt > /root/1.txt.gz解压缩到指定的目录/root/1.txt.gz中去,并保存下来。

把test6目录下的每个文件压缩成.gz文件

gzip 文件

把上例中每个压缩的文件解压,并列出详细的信息

gzip -dv 文件

详细显示例1中每个压缩的文件的信息,并不解压

gzip -l 文件

压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz

gzip -r log.tar

递归的压缩目录

gzip -rv test6

这样,所有test下面的文件都变成了*.gz,目录依然存在只是目录里面的文件相应变成了*.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

递归地解压目录

gzip -dr test6

 

3、 bzip2压缩工具

bzip2命令用于创建和管理(包括解压缩)“.bz2”格式的压缩包。我们遇见Linux压缩打包方法有很多种,以下讲解了Linux压缩打包方法中的Linux bzip2命令的多种范例供大家查看,相信大家看完后会有很多收获。

注意:不能压缩目录

语法

bzip2(选项)(参数)

选项

-c或——stdout:将压缩与解压缩的结果送到标准输出;-d或——decompress:执行解压缩;-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;-h或——:在线帮助;-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;-s或——small:降低程序执行时内存的使用量;-t或——:测试.bz2压缩文件的完整性;-v或——verbose:压缩或解压缩文件时,显示详细的信息;-z或——:强制执行压缩;-V或——version:显示版本信息;-d            解压缩--repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;--repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。

 

参数

文件:指定要压缩的文件。

实例

使用yum install -y bzip2安装压缩包

094553_kYrf_3803405.png

bzip2 -c 1.txt > /tmp/1.txt.bz2              指定到压缩的路径下;使用du -sh /tmp/1.txt.bz2查看。

095735_bErD_3803405.png

使用file 1.txt.bz2查看类型

100037_qu0P_3803405.png

压缩指定文件filename:

bzip2 filename或bzip2 -z filename

这里,压缩的时候不会输出,会将原来的文件filename给删除,替换成filename.bz2.如果以前有filename.bz2则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 -f filename;如果filename是目录则也提醒错误不做任何操作;如果filename已经是压过的了有bz2后缀就提醒一下,不再压缩,没有bz2后缀会再次压缩。

解压指定的文件filename.bz2:

bzip2 -d filename.bz2或 filename.bz2

这里,解压的时候没标准输出,会将原来的文件filename.bz2给替换成filename。如果以前有filename则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 - filename.bz2

压缩解压的时候将结果也输出:

$bzip2 -v filename

输入之后,输出如下:

filename:  0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.

这里,加上-v选项就会输出了,只用压缩举例了,解压的时候同理bzip2 -dv filename.bz2不再举例了。

模拟解压实际并不解压:

bzip2 -tv filename.bz2

输入之后,输出如下:

filename.bz2: ok

这里,-t指定要进行模拟解压,不实际生成结果,也就是说类似检查文件,当然就算目录下面有filename也不会有什么错误输出了,因为它根本不会真的解压文件。为了在屏幕上输出,这里加上-v选项了,如果是真的解压bzip2 -dv filename.bz2则输出的是把"ok"替换成了"done"。

压缩解压的时候,除了生成结果文件,将原来的文件也保存:

bzip2 -k filename

这里,加上-k就保存原始的文件了,否则原始文件会被结果文件替代。只用压缩举例了,解压的时候同理$bzip2 -dk filename.bz2不再举例了。

解压到标准输出:

bzip2 -dc filename.bz2

输入之后,输出如下:

hahahhaahahha

这里,使用-c指定到标准输出,输出的是文件filename的内容,不会将filename.bz2删除。

压缩到标准输出:

bzip2 -c filenamebzip2: I won't  compressed data to a terminal.bzip2: For help, : `bzip2 --help'.

这里,使用-c指定压缩到标准输出不删除原有文件,不同的是,压缩后的文件无法输出到标准输出。

使用bzip2的时候将所有后面的看作文件(即使文件名以'-'开头):

bzip2 -- -myfilename

4 、xz压缩工具

一、通过 yum装个xz压缩包,然后解压,操作如下:

  1. yum search xz            #安装xz包

  2. xz -d                     #解压缩你的文件.tar.xz

  3. tar -xvf                      #你的文件.tar.xz

  4. 不能压缩目录

  5. xzcat 1.txt .xz

  6. xz -c 1.txt > /root/1.txt.xz        #保留源文件,并压缩到指定的目录中。

  7. xz -d -c /root/1.txt.xz > 1.txt.new3

  8. xzcat   /tmp/2.txt.xz         #查看压缩的包内容

二、创建或解压tar.xz文件的方法

  1. 习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。

  2. 其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。

  3. 创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz

 

选项

-z, --compress      force compression(强制压缩)  -d, --decompress    force decompression(强制解压)  -t, --test          test compressed file integrity(测试压缩文件完整性)  -l, --list          list information about files(列出相关文件的信息)  -k, --keep          keep (don't delete) input files(保留(不要删除)输入文件)  -f, --force         force overwrite of output file and (de)compress links                      (强制覆盖输出文件和压缩链接)  -c, --stdout        write to standard output and don't delete input files                       (写入标准输出,不要删除输入文件)  -0 .. -9            compression preset; 0-2 fast compression, 3-5 good                      (压缩预设; 0-2快速压缩,3-5好)                      compression, 6-9 excellent compression; default is 6                      (压缩,6-9优秀压缩; 默认为6))  -e, --extreme       use more CPU time when encoding to increase compression                      (编码时使用更多的CPU时间来增加压缩)                      ratio without increasing memory usage of the decoder                      (比例,而不增加解码器的内存使用)  -q, --quiet         suppress warnings; specify twice to suppress errors too                      (抑制警告; 指定两次以抑制错误)  -v, --verbose       be verbose; specify twice for even more verbose                      (冗长; 指定两次更详细)  -h, --help          display this short help(显示帮助信息))  -H, --long-help     display the long help (lists also the advanced options)                      (显示长期帮助(还列出了高级选项))  -V, --version       display the version number(显示版本号)

 

转载于:https://my.oschina.net/u/3803405/blog/1789720

你可能感兴趣的文章
js 日期对象 31 号 setMonth 的锅
查看>>
《云栖社区2017年度内容特辑》新鲜出炉!800+份大会PPT、20+技术专题、100+话题...快抱走!...
查看>>
iOS RunLoop详解
查看>>
聊聊eureka client的backup-registry-impl属性
查看>>
transitionFromViewController 返回NO
查看>>
react-native 0.56.0版本更新日志
查看>>
iOS 开发消息转发
查看>>
Spark综合使用及用户行为案例广告点击量实时统计分析实战-Spark商业应用实战...
查看>>
SparkStreaming窗口滑动以及拉链实现转化率模型的高阶应用-Spark商业应用实战
查看>>
【译】探索 Kotlin 的隐性成本(第三部分)
查看>>
RunLoop与Timer以及常用Mode
查看>>
Android中Activity的启动流程
查看>>
h5+js实现单机版贪吃蛇
查看>>
Javascript 中的数据类型判断
查看>>
AJAX的前因后果
查看>>
简单粗暴的react路由
查看>>
swift项目-让自己的项目支持cocoapod和carthage
查看>>
font-face
查看>>
vue基础与项目构建入门
查看>>
个人关于vue全家桶开发规范的梳理
查看>>