以下为 Linux / macOS 环境下解压 ZIP 文件的标准命令与常用变体,按工程使用频率整理。
一、最常用解压命令
bash
unzip file.zip
说明:
- 解压到 当前目录
- 自动创建 ZIP 内部的目录结构
二、解压到指定目录(最常用)
bash
unzip file.zip -d /path/to/output_dir
示例:
bash
unzip data_20251222.zip -d /home/qzq/data/
三、查看 ZIP 内容(不解压)
bash
unzip -l file.zip
用于:
- 确认内部文件名
- 判断是否路径过深 / 文件名过长
四、覆盖 / 不覆盖策略(重要)
1️⃣ 覆盖已存在文件(不询问)
bash
unzip -o file.zip
2️⃣ 不覆盖已存在文件
bash
unzip -n file.zip
五、处理中文乱码(非常关键)
如果 ZIP 是 Windows / GBK 编码 生成的(你这个场景很常见):
bash
unzip -O GBK file.zip
或(部分系统):
bash
unzip -O CP936 file.zip
六、只解压指定类型文件
bash
unzip file.zip "*.jpg"
解压到指定目录:
bash
unzip file.zip "*.jpg" -d images/
七、排除指定文件/目录
bash
unzip file.zip -x "__MACOSX/*"
八、路径过长 / 解压失败时的工程处理建议
如果你再次遇到类似:
filename too long
建议流程:
bash
mkdir /tmp/unzip_test
cd /tmp/unzip_test
unzip /path/to/file.zip
或:
bash
unzip file.zip | head
先确认内部文件名长度。
九、如果系统没有 unzip
Ubuntu / Debian
bash
sudo apt install unzip
CentOS / Rocky / Alma
bash
sudo yum install unzip