gzip是Linux系统中经典的压缩工具,默认采用DEFLATE压缩算法,仅能对单个文件进行压缩,压缩后原文件会被替换成.gz格式的文件,无法直接压缩目录。如果需要压缩目录,通常需要配合tar命令一起使用。

gzip命令基础语法
gzip命令的基础语法格式如下:
gzip [参数] 文件名
常用参数说明
以下是gzip命令最常用的参数及其作用:
| 参数 | 作用说明 |
|---|---|
| -c | 将压缩结果输出到标准输出,保留原文件不删除 |
| -d | 解压.gz格式的文件,等同于gunzip命令 |
| -k | 压缩或解压时保留原文件,不会删除原始文件 |
| -l | 列出压缩文件的相关信息,包括压缩率、原文件大小等 |
| -r | 递归处理指定目录下的所有文件,逐个进行压缩 |
| -v | 显示压缩或解压过程的详细信息 |
| -[1-9] | 设置压缩级别,1为最快压缩率最低,9为最慢压缩率最高,默认是6 |
实操示例
1. 压缩单个文件
直接对test.txt文件进行压缩,压缩完成后原文件会被删除,生成test.txt.gz:
gzip test.txt
2. 压缩时保留原文件
使用-k参数可以在压缩后保留原始文件:
gzip -k test.txt
或者使用-c参数将压缩结果重定向到新文件:
gzip -c test.txt > test.txt.gz
3. 解压.gz文件
使用-d参数解压test.txt.gz文件:
gzip -d test.txt.gz
解压时保留原压缩文件可以使用-k参数:
gzip -dk test.txt.gz
4. 查看压缩文件信息
使用-l参数查看压缩文件的详细信息:
gzip -l test.txt.gz
5. 递归压缩目录下的文件
对data目录下的所有文件进行逐个压缩,目录本身不会被压缩:
gzip -r data/
6. 设置压缩级别
使用最高压缩级别9压缩文件,压缩率更高但速度更慢:
gzip -9 test.txt
注意事项
- gzip默认只能压缩单个文件,无法直接压缩整个目录,如果需要压缩目录,建议先使用tar命令打包再压缩,例如
tar -czvf test.tar.gz test_dir/ - 压缩后默认会删除原文件,如果需要保留原文件,记得添加
-k参数或者使用-c重定向输出 - 解压时如果当前目录已经存在同名文件,gzip会提示是否覆盖,需要根据实际情况选择