gzip filename
(生成filename.gz并删除原文件),解压文件:gzip -d filename.gz
或 gunzip filename.gz
,常用选项:-k
保留原文件,-v
显示压缩信息,-r
递归压缩目录内文件。gzip是Linux/Unix系统中广泛使用的文件压缩工具,通过LZ77算法高效减小文件体积,节省存储空间并加速网络传输,以下是详细使用指南:
基础命令格式
gzip [选项] 文件名
核心功能与参数
参数 | 作用 | 示例 |
---|---|---|
无参数 | 直接压缩文件(原文件会被删除) | gzip file.log → 生成file.log.gz |
-d |
解压文件 | gzip -d file.log.gz → 还原file.log |
-k |
保留原文件 | gzip -k image.jpg → 同时保留image.jpg 和image.jpg.gz |
-l |
查看压缩率 | gzip -l archive.gz → 显示压缩比、未压缩大小 |
-r |
递归压缩目录 | gzip -r /data/logs → 压缩目录内所有文件 |
-1 ~-9 |
压缩级别(1最快,9最高压缩率) | gzip -9 database.sql → 最大程度压缩 |
-v |
显示压缩详情 | gzip -v report.txt → 输出压缩进度和结果 |
典型应用场景
-
压缩单个文件
gzip -kv access.log # 保留原文件并显示详情
输出:
access.log: 78.3% -- replaced with access.log.gz
-
批量处理目录
gzip -r ./documents # 压缩documents目录下所有文件
-
查看压缩信息
gzip -l backup.tar.gz
输出:
compressed uncompressed ratio uncompressed_name 102400 500000 79.6% backup.tar
-
高效压缩大文件
gzip -9 large_video.mp4 # 最高压缩级别(耗时较长)
-
解压到指定目录
gzip -d -c archive.gz > /backup/restored_file # 解压到自定义路径
注意事项
-
文件覆盖风险
默认压缩会删除原文件,使用-k
保留原文件,或提前备份关键数据。 -
目录压缩限制
gzip
只能压缩目录内的文件,如需打包整个目录,先用tar
:tar czvf project.tar.gz ./project/ # 先打包再压缩
-
解压验证
解压后使用sha256sum
校验完整性:sha256sum original.txt > checksum.sha256 # 压缩前生成校验码 sha256sum -c checksum.sha256 # 解压后验证
常见问题解决
-
报错
gzip: stdin: not in gzip format
文件可能已损坏或非gzip格式,用file archive.gz
检查类型。 -
加速压缩过程
低压缩级别提升速度:gzip -1 large_file.dat
(比-9
快3-5倍)。 -
保留文件权限
配合tar
保持属性:tar cf - ./data | gzip > data.tar.gz # 压缩 gzip -d data.tar.gz && tar xf data.tar # 解压
安全提示:操作前务必确认文件可删除,关键数据建议使用
-k
保留原文件,生产环境中,压缩前使用cp
备份原始数据。
引用说明参考GNU Gzip官方文档(https://www.gnu.org/software/gzip/)及Linux man pages,实践基于Ubuntu 22.04和CentOS 7环境验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/23843.html