019 gzip命令

命令说明

gzip 是 Linux 最常用的单文件压缩工具,生成 .gz 文件。它只压缩单个文件(多文件需配合 tar),压缩率高、速度快。

语法

gzip [选项]... 文件...

常用参数

参数说明
-1 ~ -9压缩级别,-1 最快、-9 最小(默认 -6)
-k压缩后保留源文件(默认删除)
-c输出到标准输出,不删除源文件
-d解压(等价于 gunzip)
-f强制压缩,即使文件有硬链接或已是 .gz
-r递归压缩目录下所有文件
-t测试压缩包完整性
-v显示压缩过程与压缩率
-N在 .gz 中保存原始文件名与时间戳

使用示例

$ gzip file.txt

压缩为 file.txt.gz 并删除源文件

$ gzip -k file.txt

压缩但保留源文件

$ gzip -9 big.log

最高压缩比

$ gzip -c app.log > app.log.gz

压缩输出到新文件,源不变

$ gzip -d app.log.gz

解压(同 gunzip)

$ gzip -r logs/

递归压缩 logs 下所有文件

$ zcat app.log.gz

查看 .gz 内容不解压

实用技巧

  • gzip 不能打包目录:要压缩整个目录用 tar czf dir.tar.gz dir/,而不是 gzip dir/。
  • 压缩多个文件:gzip *.log 会逐个压缩成 .log.gz(注意引号防 shell 展开)。
  • 与 bzip2/xz 对比:gzip 速度快、压缩率中等;bzip2/xz 更小但更慢。
  • 管道压缩:tar cf - dir | gzip > dir.tar.gz,适合边打包边压缩。