热门标签 | 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

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

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

 

 

 

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




















































































































































































































































推荐阅读
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • java解析json转Map前段时间在做json报文处理的时候,写了一个针对不同格式json转map的处理工具方法,总结记录如下:1、单节点单层级、单节点多层级json转mapim ... [详细]
  • PBO(PixelBufferObject),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(DirectM ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 在Python中,通过实现一个便捷的函数来解码Base64编码的数据,并将其转换为数组形式。该函数能够将Base64字符串解码为字节数组,便于进一步处理。例如,可以使用如下代码片段进行解码:`base64_decode_array('6gAAAOsAAAD')`。这为处理二进制数据提供了高效且简洁的方法。 ... [详细]
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社区 版权所有