热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

压缩工具_四周第四次课(1月5日)6.1压缩打包介绍6.2gzip压缩工具6.3bzip2压缩工具6.4xz压缩工具

四周第四次课(1月5日)6.1压缩打包

四周第四次课(1月5日)
6.1 压缩打包介绍
6.2 gzip压缩工具
6.3 bzip2压缩工具
6.4 xz压缩工具

=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================

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

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

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

实例
把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

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

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

实例
压缩指定文件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

bunzip2 filename.bz2
这里,解压的时候没标准输出,会将原来的文件filename.bz2给替换成filename。如果以前有filename则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 -df 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 filename
bzip2: I won‘t write compressed data to a terminal.
bzip2: For help, type: `bzip2 --help‘.
这里,使用-c指定压缩到标准输出不删除原有文件,不同的是,压缩后的文件无法输出到标准输出。

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

bzip2 -- -myfilename
这里主要是为了防止文件名中-产生以为是选项的歧义。

 

 

=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================

KEYMAP="cn"
FOnT="latarcyrheb-sun16"
LANG="zh_CN.UTF-8"
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"
[[email&#160;protected] d6z]# gzip -d 1.txt.gz
[[email&#160;protected] d6z]# gzip -c 1.txt > /tmp/11.txt.gz
[[email&#160;protected] d6z]# ls
1.txt
[[email&#160;protected] d6z]# ls /tmp/11.txt.gz
/tmp/11.txt.gz
[[email&#160;protected] d6z]# file !$
file /tmp/11.txt.gz
/tmp/11.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Jan 5 21:32:55 2018
[[email&#160;protected] d6z]# gzip -d -c 1.txt > /tmp/11.txt.gz /tmp/d6z/2.txt

gzip: 1.txt: not in gzip format
gzip: /tmp/d6z/2.txt.gz: No such file or directory
[[email&#160;protected] d6z]# gzip -d -c 1.txt > /tmp/11.txt.gz > /tmp/d6z/2.txt

gzip: 1.txt: not in gzip format
[[email&#160;protected] d6z]# lsd
-bash: lsd: 未找到命令
[[email&#160;protected] d6z]# ls
1.txt 2.txt
[[email&#160;protected] d6z]# wc -l 1.txt 2.txt
123139 1.txt
0 2.txt
123139 总用量
[[email&#160;protected] d6z]# gzip -d -c /tmp/11.txt.gz > /tmp/d6z/2.txt

gzip: /tmp/11.txt.gz: unexpected end of file
[[email&#160;protected] d6z]# ls /tmp/11.txt.gz
/tmp/11.txt.gz
[[email&#160;protected] d6z]# gzip -d -c /tmp/11.txt.gz > /tmp/d6z/3.txt

gzip: /tmp/11.txt.gz: unexpected end of file
[[email&#160;protected] d6z]# ls
1.txt 2.txt 3.txt
[[email&#160;protected] d6z]# wc -l 1.txt 2.txt 3.txt
123139 1.txt
0 2.txt
0 3.txt
123139 总用量
[[email&#160;protected] d6z]# gzip -d -c /tmp/11.txt.gz > /tmp/d6z/3.txt

gzip: /tmp/11.txt.gz: unexpected end of file
[[email&#160;protected] d6z]# gzip -dc /tmp/11.txt.gz > /tmp/d6z/3.txt

gzip: /tmp/11.txt.gz: unexpected end of file
[[email&#160;protected] d6z]# ls /tmp/
11.txt.gz fstab
123 passwd.sh
12.txt systemd-private-7534822b871f401a97d8ffc1abd00603-vmtoolsd.service-28fmWV
1.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
d6z xxx.sh
[[email&#160;protected] d6z]# gzip -c 1.txt > /tmp/1.txt.gz
[[email&#160;protected] d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/4.txt
[[email&#160;protected] d6z]# wc -l 1.txt 2.txt 3.txt 4.txt
123139 1.txt
0 2.txt
0 3.txt
123139 4.txt
246278 总用量
[[email&#160;protected] d6z]# ls /tmp/
11.txt.gz fstab
123 passwd.sh
12.txt systemd-private-7534822b871f401a97d8ffc1abd00603-vmtoolsd.service-28fmWV
1.txt systemd-private-fc86786af1c94a90a7ee58458ca44c06-vmtoolsd.service-NvU9XZ
1.txt.gz xxx.sh
d6z
[[email&#160;protected] d6z]# du -sh *.txt
4.7M 1.txt
0 2.txt
0 3.txt
4.7M 4.txt
[[email&#160;protected] d6z]# file !$
file *.txt
1.txt: C source, UTF-8 Unicode text, with very long lines
2.txt: empty
3.txt: empty
4.txt: C source, UTF-8 Unicode text, with very long lines
[[email&#160;protected] d6z]# file /tmp/11.txt.gz 1.txt.gz
/tmp/11.txt.gz: empty
1.txt.gz: cannot open (No such file or directory)
[[email&#160;protected] d6z]# file /tmp/11.txt.gz
/tmp/11.txt.gz: empty
[[email&#160;protected] d6z]# file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Fri Jan 5 21:32:55 2018
[[email&#160;protected] d6z]# file /tmp/11.txt.gz
/tmp/11.txt.gz: empty
[[email&#160;protected] d6z]# ls
1.txt 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# yum install -y bzip2
已加载插件:fastestmirror
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
updates/7/x86_64/primary_db | 5.2 MB 00:00:03
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 bzip2.x86_64.0.1.0.6-13.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================
Package 架构 版本 源 大小
============================================================================================
正在安装:
bzip2 x86_64 1.0.6-13.el7 base 52 k

事务概要
============================================================================================
安装 1 软件包

总下载量:52 k
安装大小:82 k
Downloading packages:
bzip2-1.0.6-13.el7.x86_64.rpm | 52 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : bzip2-1.0.6-13.el7.x86_64 1/1
验证中 : bzip2-1.0.6-13.el7.x86_64 1/1

已安装:
bzip2.x86_64 0:1.0.6-13.el7

完毕!
[[email&#160;protected] d6z]# bzip2 1.txt
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# du -sh 1.txt.bz2
496K 1.txt.bz2
[[email&#160;protected] d6z]# du -sh 4.txt
4.7M 4.txt
[[email&#160;protected] d6z]# bzip2 -d 1.txt.bz2
[[email&#160;protected] d6z]# bzip2 1.txt
[[email&#160;protected] d6z]# bunzip2 1.txt.bz2
[[email&#160;protected] d6z]# ls
1.txt 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[[email&#160;protected] d6z]# du -sh /tmp/1.txt.bz2
496K /tmp/1.txt.bz2
[[email&#160;protected] d6z]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt
[[email&#160;protected] d6z]# ls
1.txt 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# du -sh 3.txt
4.7M 3.txt
[[email&#160;protected] d6z]# bzip2 -9 1.txt
[[email&#160;protected] d6z]# du -sh 1.txt.bz2
496K 1.txt.bz2
[[email&#160;protected] d6z]# file 1.txt.bz2
1.txt.bz2: bzip2 compressed data, block size = 900k
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# mv 1.txt.bz2 1.txt
[[email&#160;protected] d6z]# ls
1.txt 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# less 1.txt
"1.txt" may be a binary file. See it anyway?
[[email&#160;protected] d6z]# file 1.txt
1.txt: bzip2 compressed data, block size = 900k
[[email&#160;protected] d6z]# file 3.txt
3.txt: C source, UTF-8 Unicode text, with very long lines
[[email&#160;protected] d6z]# less 3.txt ^C
[[email&#160;protected] d6z]# mv 1.txt 1.txt.bz2
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# bzcat
[[email&#160;protected] d6z]# xz 3.txt
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt.xz 4.txt
[[email&#160;protected] d6z]# du -sh 3.txt.xz
60K 3.txt.xz
[[email&#160;protected] d6z]# du -sh 4.txt
4.7M 4.txt
[[email&#160;protected] d6z]# xz -d 3.txt.xz
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# xz 3.txt
[[email&#160;protected] d6z]# unxz 3.txt.xz
[[email&#160;protected] d6z]# ls
1.txt.bz2 2.txt 3.txt 4.txt
[[email&#160;protected] d6z]# xz -c 3.txt > /tmp/2.txt.xz
[[email&#160;protected] d6z]# xz -d -c /tmp/2.txt.xz > ./2.txt
[[email&#160;protected] d6z]# xzcat /tmp/2.txt.xz

=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================

技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片技术分享图片

 

 

 

=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================




















































































































































































































































推荐阅读
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • PatchODAX8: ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
author-avatar
evenstand_291
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有