Linux解压zip文件必须用unzip命令,因tar不原生支持.zip格式;强行用tar -xzf会报“gzip: stdin: not in gzip format”错误,而unzip可直接解压、支持静默覆盖(-o)、指定目录(-d)及完整性校验(-t)。

Linux 中解压常见压缩文件,关键看后缀名——不同格式对应不同命令,用错会报错或解不开。核心就两条:zip 类用 unzip,tar 系列(.tar、.tar.gz、.tar.bz2、.tar.xz)统一用 tar -x 加对应压缩标识。
解压 .zip 文件(跨平台通用)
zip 格式最常用,尤其在和 Windows 交换数据时。
基础解压到当前目录:
unzip file.zip
指定解压到已有或新建目录(-d 后的路径不存在会自动创建):
- unzip file.zip -d ./data(推荐用于整理数据集)
- 若提示
command not found: unzip,先安装:
Ubuntu/Debian:sudo apt install unzip
CentOS/RHEL:sudo yum install unzip 或 sudo dnf install unzip
解压 .tar、.tar.gz、.tgz(最常用 Linux 格式)
这类是打包+压缩组合,-C 参数必须配合已存在的目标目录(不能自动建):
- 仅打包未压缩(.tar):tar -xf archive.tar -C ./target_dir
- gzip 压缩(.tar.gz 或 .tgz):tar -xzf archive.tar.gz -C ./target_dir
- 注意:-f 必须放在最后,-z 必须存在才能识别 gzip;tar -xzf 是高频组合,建议记牢
解压 .tar.bz2 和 .tar.xz(高压缩率场景)
适合大文件归档,压缩率高但解压略慢:
- .tar.bz2:tar -xjf archive.tar.bz2 -C ./target_dir(-j 对应 bzip2)
- .tar.xz:tar -xJf archive.tar.xz -C ./target_dir(-J 是大写,对应 xz)
- 若提示
Cannot exec J: No such file or directory,说明系统缺 xz 工具:
Ubuntu:sudo apt install xz-utils
CentOS:sudo yum install xz
单个文件压缩包(.gz、.bz2)怎么解?
这些不是归档包,只是对单个文件做了压缩,解完就剩一个原文件:
- .gz 文件:gunzip file.txt.gz 或 gzip -d file.txt.gz(原 .gz 文件会被删除)
- .bz2 文件:bunzip2 data.log.bz2 或 bzip2 -d data.log.bz2
- 想保留原压缩包?加 -k 参数:gunzip -k file.gz


















