• 【Gzip】详细介绍


    1. 前言

    Gzip是一种流行的文件压缩和解压工具,也是一种文件格式。它最早由Jean-loup GaillyMark Adler开发,用于UNIX系统。由于高效的压缩算法,它被广泛运用于文件的压缩与解压缩、网络数据传输优化等场景。

    2. Gzip压缩算法

    Gzip基于DEFLATE算法,后者结合了LZ77算法和哈夫曼编码。DEFLATE算法在压缩时,会先通过LZ77算法找出文件中的重复字符串并将其替换掉,然后通过哈夫曼编码进一步减少文件大小。

    3. Gzip文件格式

    Gzip文件通常有.gz后缀。一个标准的gzip文件头部包括以下几部分:

    • 一个幻数(magic number):这是两个字节,值为1f 8b,用于标识这是一个gzip文件。
    • 压缩方法(compression method):一个字节,表示了用于文件数据部分压缩的算法,对于gzip来说通常是DEFLATE。
    • 文件标志(flags):一个字节,包括是否有额外字段,原始文件名,注释等信息。
    • 时间戳(timestamp):一个32位的UNIX格式时间戳,标记了文件的最后修改时间。
    • 额外标志(extra flags):取决于压缩方法。
    • 操作系统(operating system):标记创建该gzip文件的操作系统。

    4. Gzip使用

    Unix/Linux系统中,可以通过命令行使用gzip进行压缩或解压缩。

    压缩文件或目录:

    gzip filename                # 压缩文件,会生成filename.gz文件
    gzip -c filename > filename.gz # 压缩文件并输出到filename.gz
    gzip -r directory             # 递归压缩目录下的所有文件
    
    • 1
    • 2
    • 3

    解压缩文件:

    gzip -d filename.gz           # 解压缩.gz文件
    gunzip filename.gz            # 解压缩.gz文件,同'gzip -d'
    
    • 1
    • 2

    添加压缩级别(1-9,1最快且压缩率最低,9最慢且压缩率最高):

    gzip -9 filename              # 使用最高压缩率压缩
    
    • 1

    Gzip也常见于网络数据传输中,HTTP协议支持gzip压缩,可以显著减小传输的数据大小,提高加载速度。

    5. 压缩率与CPU使用

    使用更高的压缩级别可以得到更小的文件,但同时也需要更多的CPU资源和时间。因此,在使用gzip时要根据具体情况权衡压缩速度和压缩效率。

    Gzip是文件压缩领域的实用工具之一,它简单易用,并且在多种平台和应用中得到广泛支持,是处理文件压缩任务的常见选择。

  • 相关阅读:
    蓝桥杯2024年第十五届省赛真题-小球反弹
    C++11绑定器bind及function机制
    vscode+gdbserver开发软件方法
    MyBatis if标签:条件判断
    【LeetCode刷题】新手一看就会的——动态规划详解—入门
    [MySQL]-xtabackup搭建主从
    [附源码]java毕业设计停车场管理系统
    第六讲 主窗体测量代码撰写,实现检测功能
    HTML+CSS大作业:使用html设计一个简单好看的公司官网首页 浮动布局
    uniapp自定义顶部导航栏
  • 原文地址:https://blog.csdn.net/cz88888888666/article/details/136747559