首页/系统/Linux 运维命令速查/gzip 压缩与解压(.gz)
文件与目录76 条

gzip 压缩与解压(.gz)

单文件压缩标准工具,默认删除原文件;日志压缩、tar.gz 内核与互联网分发格式的底层依赖。

Linux 运维命令速查系统更新于 2026-10-13

gzip 是什么

gzip 是单文件压缩工具,也是 .gz 格式与 deflate 算法的代名词。它只处理一个文件或一条数据流,默认压完删除原文件;要一次打包多个文件,得先用 tar,这也是 .tar.gz 这种双扩展名的由来。日志归档、软件包分发、内核镜像都大量使用它,属于系统里最基础的压缩能力。

基本信息

适用平台Linux、Unix 通用(GNU gzip)
命令语法gzip [选项] [文件...]
常用选项-d 解压 / -k 保留原文件 / -9 最高压缩 / -1 最快 / -l 查看压缩率 / -c 输出到标准输出 / -t 完整性校验
同类命令gunzip 等价于 gzip -d,zcat 等价于 gzip -dc

典型使用场景

  • 归档历史日志:gzip -9 app.log,文本日志的压缩比通常很可观
  • 不解压直接读:zcat app.log.gz | grep ERROR
  • 校验压缩包完整性:gzip -t app.log.gz,返回码为 0 表示没问题
  • 流式压缩:tar -czf 内部就是先打包再调用 gzip
  • 传输前压缩:大文件先 gzip 再传输,能明显缩短网络时间

常用示例

常用示例
gzip -k -9 app.log        # 保留原文件,使用最高压缩级别
gzip -d app.log.gz        # 解压(等价 gunzip)
zcat app.log.gz | head    # 不解压直接读内容
gzip -l app.log.gz        # 查看压缩率与原始大小
gzip -t app.log.gz        # 校验完整性,返回码 0 表示正常
gzip -1 fast.log          # 最快压缩,适合临时的中间文件

常用选项

选项作用提示
-d解压等价于 gunzip
-k保留原文件GNU 版支持,老版本可能没有
-1 到 -9压缩级别,数字越大越慢也越小默认是 6,日志归档常用 9
-c把结果写到标准输出与原文件配合可做流式处理
-l列出压缩前后大小与比率快速评估压缩效果
-t测试压缩包完整性传输后校验的首选
压缩后原文件默认被删除,想两者都留就加 -k;脚本里处理重要文件时先复制一份再压,比事后翻备份更省事。
gzip -l 读的是压缩包头部记录的信息,用其它工具生成、缺少长度字段的归档文件,压缩率那一列可能显示为负数或不可用,这时以解压后的实际大小为准。

易错点

  • gzip 不做归档:多文件要先用 tar 打包,直接 gzip 多个文件会各自压成独立的包
  • 对已压缩数据(jpg、mp4、.gz)再压基本没有收益还费 CPU,先用 file 判断类型
  • 不加 -k 时原文件会被删除,脚本里忘了这一点会误删源头文件
  • 压缩级别 9 在大文件上耗时明显增加而收益有限,归档任务要留意时间预算
  • gzip 与 bzip2、xz、zstd 互不兼容,用 gzip -d 解 .xz 文件只会报格式错误

数据来源与参考

  • man 1 gzip(GNU gzip 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌