gzip和gunzip是专为单文件设计的轻量级工具,仅用deflate算法压缩或解压.gz文件,不打包、不处理目录;默认操作会删除原文件,使用-c选项可保留并重定向输出,适用于日志归档、配置备份等场景。

gzip 和 gunzip 是专为单文件设计的轻量级工具,不打包、不处理目录,只做一件事:用 DEFLATE 算法压缩或还原一个 .gz 文件。它们速度快、资源占用低,特别适合日志归档、配置备份、脚本自动化等场景。
gzip 压缩单文件:默认删原文件,加 -c 保留
直接运行 gzip filename 就能生成 filename.gz,但原始文件会被删除——这是默认行为,不是 bug。
- 想保留原文件?用 gzip -c filename > filename.gz,把压缩流重定向输出
- 压缩时保留时间戳和权限?默认就保留,无需额外参数
- 批量压缩当前目录所有 .log 文件:gzip *.log(注意:每个都会被单独压缩成 .log.gz)
gunzip 解压单文件:默认删压缩包,-c 可保留并重定向
gunzip file.gz 会解出 file,并自动删除 file.gz。如果只想看内容不落地,或需要保留压缩包,就得用 -c。
本文档主要讲述的是Android linux内核介绍;Android内核是基于Linux 2.6内核的(目前最新开发版本是2.6.31),它是一个增强内核版本,除了修改部分Bug外,它提供了用于支持Android平台的设备驱动,希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 解压后保留 .gz 文件:gunzip -c file.gz > file
- 快速查看压缩内容(不生成文件):zcat file.gz 或 gunzip -c file.gz | head -20
- 测试压缩包是否损坏(不解压):gunzip -t file.gz,返回 0 表示正常
常见误区与避坑点
很多操作失败其实源于对工具定位的误解:
- gzip 不能直接压缩目录 —— 它只处理文件。要压缩整个文件夹,请用 tar -czvf folder.tar.gz folder/
- 不要对 .tar.gz 用 gunzip 单独解压 —— 那是 tar 归档+gzip 压缩的组合格式,应统一用 tar -xzvf,否则可能只解出 tar 包而没展开内容
- 中文文件名在 gzip 中无乱码问题 —— 因为 gzip 不涉及字符编码,乱码通常出现在 zip/unzip 场景,需用 -O GBK
效率提升小技巧
在服务器或脚本中追求更快更稳,可以这样优化:
- 大文件解压加速:zcat file.gz | pv | tar -x(配合 pv 查看进度),或用 pigz 替代 gzip(支持多核,需 sudo apt install pigz)
- 压缩时指定速度/比率:gzip -1 file(最快,压缩率低)到 gzip -9 file(最慢,压缩率高),日常推荐默认(-6)
- 管道中直接处理:curl -s https://example.com/log.gz | gunzip -c | grep "ERROR",省去落盘步骤










