gzip -d 和 gunzip 功能完全等同,均用于解压单个 .gz 文件(如 data.txt.gz → data.txt),默认删除原压缩包;gunzip 本质是 gzip -d 的硬链接;二者均不处理 .tar.gz,该格式需用 tar -xzf。

gzip -d 和 gunzip 都能解压单个 .gz 文件,但它们不处理 .tar.gz —— 那是 tar 的事,不是 gzip 的。
直接解压单个 .gz 文件(比如 data.txt.gz)
这类文件是纯 gzip 压缩的单一文件,原始文件名通常就是去掉 .gz 后的部分。
-
gzip -d data.txt.gz:解压后生成data.txt,原.gz文件被删除 -
gunzip data.txt.gz:效果完全等同于gzip -d,因为gunzip就是gzip的硬链接 -
gzip -dk data.txt.gz:加-k保留压缩包,适合需要反复验证或备份时用 - 如果目标位置已有
data.txt,默认会提示是否覆盖;加-f可跳过确认:gzip -df data.txt.gz
批量解压当前目录下所有 .gz 文件
常见于日志归档、批量下载后处理。注意:只解压,不递归进子目录。
-
gzip -d *.gz:最简方式,shell 展开通配符后逐个调用gzip -d -
gunzip *.gz:等价,语义更明确 - 若遇到文件名含空格或特殊字符,建议用
find+-exec更稳妥:find . -maxdepth 1 -name "*.gz" -exec gzip -d {} \;
解压 .tar.gz 文件(实际是 tar + gzip 组合)
.tar.gz 不是“gzip 文件”,而是先 tar 打包、再用 gzip 压缩的归档。直接用 gzip -d 会出错,报 not in gzip format 或解出一堆乱码二进制数据。
- 正确命令是:
tar -xzf archive.tar.gz(-x解包,-z调用 gzip 解压,-f指定文件) - 想看内容不解压:
tar -tzf archive.tar.gz - 解压到指定目录:
tar -xzf archive.tar.gz -C /path/to/dir - 用
gunzip配合tar也行,但绕路:gunzip -c archive.tar.gz | tar -xvf -,不如直接tar -xzf直观可靠
常见错误和容易忽略的点
很多问题其实卡在「以为自己在解 tar 包,实际只用了 gzip」。
- 执行
gzip -d project.tar.gz后得到一个叫project.tar的文件——这不是解完了,只是剥掉了一层 gzip,还得再tar -xf project.tar -
.tgz是.tar.gz的别名,同样必须用tar -xzf,不能只用gzip -
gzip -t file.gz可提前校验完整性,避免解压中途报invalid compressed data - 权限问题:如果解压后文件属主/时间戳异常,加
-N(即--name)让gzip尽量还原原始元信息(仅对单文件有效)


















