linux 解压 zip 文件命令核心就是 unzip,系统如果没有安装 unzip 工具需要先安装,Debian/Ubuntu 执行apt install unzip,CentOS/Rocky/RHEL 执行dnf install unzip,unzip 可以解压 zip 压缩包,支持解压到指定目录、覆盖文件、查看压缩包内容、排除文件等参数,zip 是跨平台压缩格式,windows 打包的 zip 上传到 linux 服务器最常用这个命令解压,操作不需要 root 权限,只要当前目录有读写权限即可。
基础核心命令
| 命令 | 功能说明 |
|---|---|
| unzip 文件名.zip | 解压 zip 到当前目录 |
| unzip 文件名.zip -d / 目标目录 | 解压到指定文件夹 |
| unzip -l 文件名.zip | 只查看压缩包内文件列表,不解压 |
| unzip -o 文件名.zip | 解压并且自动覆盖已有文件,不询问 |
| unzip -n 文件名.zip | 解压时如果文件已经存在,跳过不覆盖 |
常用示例
- 基础解压
- 解压到指定目录(目录不存在会报错,建议提前 mkdir 创建)
- 强制覆盖解压
- 查看压缩包里面有哪些文件
unzip test.zip
unzip test.zip -d /opt/data
unzip -o test.zip -d /opt/data
unzip -l test.zip
进阶深度要点
✅ 中文乱码问题:windows 打包的 zip 在 linux 解压经常文件名中文乱码,增加参数 -O CP936
unzip -O CP936 test.zip
✅ 加密 zip 解压:压缩包设置密码,解压会提示输入密码,也可以提前指定密码
unzip -P 密码 test.zip
✅ 如果不想安装 unzip,部分环境也可以使用 7z 命令解压 zip,7z 工具功能更强
✅ 注意:unzip 只能解压 zip,不能解压 tar.gz、bz2、xz,这类是 tar 系列压缩包,命令不一样,不要混淆
常见报错与踩坑
- 提示 command not found:没有安装 unzip,先执行包管理器安装 unzip
- 解压提示权限拒绝:当前目录没有写权限,需要 sudo 或者切换有权限目录
- 中文文件名乱码:windows 生成 zip 编码差异,使用 - O CP936 参数解决
- 解压后目录层级不对:确认压缩包内部本身就带顶层文件夹
【常见问题】
问题 1 linux 解压 zip 文件命令 unzip -o 是什么作用
回答 1 linux 解压 zip 文件命令 unzip -o 代表解压时自动覆盖已经存在的同名文件,不会弹出确认提示,适合脚本自动化解压。
问题 2 linux 解压 zip 文件命令,想解压到别的目录怎么写
回答 1 linux 解压 zip 文件命令使用 -d 参数,格式 unzip xxx.zip -d / 目标路径,就可以把压缩包解压到指定目录。
问题 3 linux 解压 zip 文件命令解压中文乱码怎么办
回答 1 linux 解压 zip 文件命令,windows 打包的 zip 中文乱码,执行 unzip -O CP936 压缩包.zip 指定编码解决乱码。
问题 4 linux 解压 zip 文件命令 unzip 可以解压 tar.gz 吗
回答 1 linux 解压 zip 文件命令 unzip 只支持 zip 格式,tar.gz 属于 tar 压缩包,需要使用 tar -zxvf 命令解压,二者不能混用。
【免责申明】
本内容为 linux 解压 zip 文件命令学习资料,解压前确认压缩包来源安全,避免解压恶意文件,解压覆盖文件会丢失原有数据,操作前做好备份,所有操作在主机合法授权环境执行。


