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,适合边打包边压缩。