深入探究Linux源代码压缩神器gzip的原理 (linux gzip 源代码)

在Linux系统中,gzip是一个备受欢迎的压缩工具。它可以将文件或目录压缩成.gz格式的文件,从而减小文件的大小,方便传输和存储。不过,很多人只知道gzip是一个实用的工具,但并不了解其原理是如何实现的。本文将,让大家了解gzip的底层技术。

一、gzip的基本原理

gzip是一种基于Lempel-Ziv算法的压缩工具。在进行压缩过程中,gzip通过字典查找的方式,将输入的字符序列划分成不同的字串,并对每个字串进行编码。具体来说,gzip利用哈希表记录出现频率较高的字串,从而更快地在字典中查找对应的编码。由于压缩后的输出比压缩前的输入要小很多,gzip可以在几乎不影响压缩文件质量的前提下,大大减小文件的大小。

在解压缩过程中,gzip先读取压缩文件的头部信息,然后根据头部信息中的压缩算法,选择相应的解压缩算法,并开始还原压缩文件。解压缩过程中,gzip会根据字典对编码进行反向查找,将编码还原成字符序列,并输出至解压缩文件。

二、gzip的常用操作

gzip是一种常用的压缩工具,常见的操作包括:

1.压缩文件

通过以下命令,将文件进行压缩:

gzip

此命令将会生成一个.gz格式的文件,文件名为.gz。

2.解压文件

通过以下命令,将.gz格式的文件进行解压缩:

gzip -d .gz

此命令将会还原.gz文件,并在当前目录下生成一个与原文件同名的文件。

3.压缩目录

通过以下命令,将目录进行压缩:

tar czvf .tar.gz

此命令将会把指定的目录以及子目录中的文件进行压缩,并生成一个.tar.gz文件。

4.解压目录

通过以下命令,将.tar.gz格式的文件进行解压缩:

tar xzvf .tar.gz

此命令将会把.tar.gz文件解压缩,并生成一个与压缩文件同名的目录。

三、gzip的高级技巧

除了基本的压缩和解压缩操作之外,gzip还有一些高级的技巧,可以让我们更好地利用这个工具。以下列举一些常见的高级操作:

1.使用多个处理器

由于gzip的压缩和解压缩过程都是CPU密集型的任务,使用多个处理器可以大大加快处理速度。可以使用以下命令,指定处理器的数量:

gzip –fast –threads

此命令将会使用个处理器,提高处理速度。

2.压缩比与速度的取舍

当我们选择压缩或解压缩文件时,我们可以选择“-1”到“-9”共9个不同的等级。数字越大,压缩比就越高,但处理速度也越慢。可以使用以下命令,指定压缩等级:

gzip –

此命令将会以指定的压缩等级进行文件压缩。

3.压缩文件的分块

gzip也支持将压缩文件分块,可以提高读写速度。可以使用以下命令进行分块:

gzip -c | split -b 100M – .gz.

此命令将会将文件进行压缩,并将压缩后的文件分为多个大小为100M的块。

四、

相关问题拓展阅读:

Linux命令gzip -d怎么解压到指定路径

gzip

本身并没有解压到指定目录的参数。

如果是单文件压缩,可以用-c加输出重定向实现指定解压目录,如:

echo hello > x #创建一个文件

mkdir dir#创建一个测试目录

gzip -c x > ./dir1/x.gz

rm x

cd dir1

gzip -cd x.gz > ../x

ls -l x

如果是用tar命令打包的文件

压缩包

,可咐庆岩以直接用tar命令-C功能指定差瞎目录,如:

tar cvf .tar x #文件打包

gzip .tar #压缩

tar zxvf .tar.gz -C ./dir1 #解压到指定目录

ls -l ./dir1/衡御x #查看结果

Linux中压缩与解压缩:

(1)使如行用tar命令备份数据的格式如下:

$ tar cvf backup.tar /home/html

上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar。

cvf是tar的命令参数。

c代表创建一个渣贺哗档案文件,

v代表显示每个备份的文件名字,

f表示tar创建的档案文拍并件名是后面的backup.tar,

/home/html 代表tar要备份的文件或和目录名。

(2)使用tar命令恢复数据的格式如下:

$ tar xvf backup.tar

上述命令将备份文件backup.tar恢复到当前目录下。

通常情况下,tar对文件进行备份的时候并不对文件进行压缩,因此备份文件的尺寸非常大。使用如下的命令,将使tar在备份结束以后,自动使用gzip命令对备份文件进行压缩,得到一个相应的gz文件。

$ tar zcvf backup.tar.gz /home/html

这样,我们可以得到压缩文件backup.tar.gz。

zip命令….

# mkdir /home/shiyanlou

# touch test

# tar cjf test.tar.bz2 test

# ll /home/shiyanlou/;

total 0

# tar xvf test.tar.bz2 -C /激带核home/shiyanlou/明掘

test

# ll /home/shiyanlou/

total 4

-rw-r–r– 1 root root 13 Dec 15 15:42 test

# touch test1

# zip test1.zip test1

adding: test1 (stored 0%)

# unzip test1.zip -d /home/shiyanlou/

Archive: test1.zip

extracting: /行告home/shiyanlou/test1

# ll /home/shiyanlou/

total 4

-rw-r–r– 1 root root 13 Dec 15 15:42 test

-rw-r–r– 1 root root 0 Dec 15 15:43 test1

很多人在学习云计算之初,都要学习Linux,云计算服务是部署在Linux系统中的。不过Linux涵盖的知识点非常多,你不仅要掌握各种操作命令,还要了解Linux文件的打包与压缩,接下来的杭州云锋衫计算入门课程就给大家简单分享。

在Linux系统中,通常我们使用的打包压缩工具有.tar.gz、.tar.bz2、.zip、gzip、bzip2只压缩文件和tar只打包文件。

tar

只打包文件

tar的打包解包:

tar cvf file.tar 被打包的文件

tar xvf file.tar -C /home 指定解压路径

不解压查看压缩包内的信息内容:

tar -tf dir1.tar.gz

gzip压缩解压:

gzip 源文件

gzipd 压缩文件

gunzip 压缩文件

gzip -c file1 >/home/file1.gz 将文件压缩到指定位置(注意以.gz结尾)

bzip2

只压缩文件bzip2命令的压缩与解压

bzip2 源文件

bzip2 -d 压缩文件

bunzip2 压缩文件

bzip2 -c file1 >/opt/file1.bz2 将文件压缩到指定位置(注意以.bz2结尾)

打包压缩

tar与gzip命令结合可以实现文件打包压缩,

用gzip压缩tar打包后的文件,其扩展名一般用.tar.gz

tar与bzip2命令结合也可以实现文件的打包压缩,

其扩展名一般用 .tar.bz2

优缺点

bzip2有比较高的压缩比,相应的压缩用时也要久一些,占用的系统内存也更大;

gzip更大的优势就是压缩解压速度快,压缩比稍逊于bzip2;

临时性的压缩包尽量选择压缩速度快的格式,如.gz;

用于持久备份或存档的文件,尽量选择压缩比较大的格式,如.bz2。

最后,它们之间还有一些区别,tar可以打包文件和目录,而bzip2和gzip只能压缩文件。

在Linux中,软件安装的方式有三种:

一、源代码形式

1、绝大多数开源软件都是直接以原码形式发布的

2、源代码一般会被打包成.tar.gz的归档压缩文件

3、源代码需要编译成为二进制形式之后才能够运行使用

4、源代码基本编译流程:

1).configure 检查编译环境,这里可以通过–prefix等命令配置安装路径(好像)

2)make对源代码进行编译;

3)make insall 将生成的可执行文件安装到当前计算机中

二、RPM

1、源代码形式的特点:操作复杂、编译时间长、极易出现问题、依赖关系复杂

2、为了方便,RPM(redhat package manager)

3、RPM通过将代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。针对不同的系统设定不同的包

4、常用命令规范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64-rpm

5、使用rpm –i software.rpm(安装);

rpm -e software.rpm(卸载);

rpm –U software.rpm(升级形式安装);

rrpm –ivh(支持通过http\ftp协议形式安装)

-v 显示详细信息;-h显示进度条

查询功能:rpm –qa 列出全部已经安装的.rpm软件 rpm –qa |grep ***

三:YUM

1、rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,但是yum能解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:

1)自动解决依赖关系;2)可以对rpm进行分组,基于组进行安装操作;3)引入仓库概念,支持多个仓库;4)配置简单。

2、yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需贺基拍要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。

3、仓库的配置文件/禅羡etc/yum.repos.d目录下

4、使用:1)yum install 安装;

)yum remove卸载;

)yum update 升级制定软件

5、安装的时候,会下载软件包.Rpm在安装,所以用国内仓库。改变镜像源1)访问地址 2)点centos使用帮助;3)按步骤来

6、查询软件:可以使用yumsearch *

linux解压gz文件的命令

linux解压gz文件命令的步骤如下所示:

工具:灵越14Pro、Windows10、命令窗口。

1、打开系统进入桌面。

2、在linux系统下闹罩用ctrl+alt+t打开命令窗口。

3、输入gzip-dFileName.gz命令,即可解压李弯和gz。

linux命令操作格式

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

我们要了解的是基于Linux操作系统哪盯的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

linux gzip 源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux gzip 源代码,深入探究Linux源代码压缩神器gzip的原理,Linux命令gzip -d怎么解压到指定路径,Linux中压缩与解压缩:,linux解压gz文件的命令的信息别忘了在本站进行查找喔。


数据运维技术 » 深入探究Linux源代码压缩神器gzip的原理 (linux gzip 源代码)