gzip
gzip 是 Linux 系统中最常用的压缩工具之一,使用 DEFLATE 算法(结合 LZ77 和哈夫曼编码),以压缩速度快、兼容性好著称,生成 .gz 格式文件,通常和 tar 搭配形成 .tar.gz 或 .tgz 文件。
gzip [选项] 文件名...gzip 本身只能压缩单个文件,处理目录时,通常先用 tar 工具打包,然后用 gzip 压缩。
1. 压缩选项
| 选项 | 说明 |
|---|---|
| 默认行为是压缩文件,不带参数 | |
-k |
保留原文件(默认删除原文件) |
-c |
将压缩结果输出到标准输出,不修改原文件,一般配合重定向使用 |
-f |
强制压缩,即使目标文件已存在也覆盖 |
-r |
递归压缩目录及其子目录中的所有文件 |
-1 至 -9 |
压缩级别,-1 最快但压缩率低,-9 最慢但压缩率高,默认 -6 |
--fast |
快速压缩,相当于 -1 |
--best |
最佳压缩,相当于 -9 |
--suffix=SUF |
自定义压缩文件扩展名(默认 .gz) |
-v |
显示详细信息 |
2. 解压选项
| 选项 | 说明 |
|---|---|
-d |
解压文件,等价于 gunzip |
-k |
解压时保留原压缩文件 |
-c |
将解压结果输出到标准输出,一般配合重定向使用 |
-f |
强制解压,覆盖已有文件 |
-t |
测试压缩文件完整性 |
-l |
列出压缩文件信息(原始大小、压缩大小等) |
-v |
显示详细信息 |
1. 压缩文件
# 压缩单个文件(默认删除原文件,生成 file.txt.gz)gzip file.txt
# 压缩并保留原文件gzip -k file.txt
# 最高压缩率(耗时较长)gzip -9 -k file.txt
# 显示压缩详情(包括压缩率)gzip -v file.txt2. 解压缩文件
# 解压缩(默认删除 .gz 文件,恢复为 file.txt)gzip -d file.txt.gz# 或gunzip file.txt.gz
# 解压缩并保留 .gz 文件gzip -d -k file.txt.gz# 或gunzip -k file.txt.gz
# 显示解压缩详情gzip -d -v file.txt.gz3. 压缩/解压缩到标准输出
# 压缩文件并输出到指定文件(手动命名,保留原文件)gzip -c file.txt > custom_name.gz
# 解压缩到标准输出,并重定向到新文件gzip -d -c file.txt.gz > restored_file.txt
# 压缩后通过管道传输(例如直接备份到远程服务器)gzip -c data.log | ssh user@server "cat > /backup/data.log.gz"4. 目录压缩/解压缩处理
# 先打包再压缩tar -cf file.tar directory/ # 创建归档gzip file.tar # 压缩成 file.tar.gz
# 解压 .tar.gz 归档gzip -d file.tar.gz # 得到 file.tartar -xf file.tar # 解开 tar 包也可以一步完成,tar 中有专门调用 gzip 的选项 -z:
# 创建 .tar.gz 归档(先打包再压缩)tar -czf file.tar.gz directory/
# 解压 .tar.gz 归档tar -xzf file.tar.gzman gzip- GNU gzip 官方文档