unzip
是 Linux 系统中用于解压 ZIP 格式压缩文件的常用命令。它功能强大且支持多种选项,以下是详细说明和常见用法:
一、基本语法
unzip [选项] 压缩包名.zip [-d 目标目录]
二、常用选项详解
| 选项 | 说明 |
|------|------|
| -d 目录
| 指定解压到目标目录(默认当前目录) |
| -l
| 仅列出压缩包内容,不解压 |
| -o
| 强制覆盖已存在的文件(不提示) |
| -n
| 不覆盖已存在的文件(跳过冲突文件) |
| -q
| 静默模式(不输出解压信息) |
| -v
| 显示详细信息(可单独查看压缩包内容) |
| -j
| 忽略压缩包内目录结构,所有文件解压到同一目录 |
| -P 密码
| 解压加密的 ZIP 文件(需提供密码) |
| -t
| 测试压缩包完整性(检查是否损坏) |
三、常见用法示例
1. 基本解压
unzip file.zip # 解压到当前目录
unzip file.zip -d /path # 解压到指定目录
2. 列出压缩包内容
unzip -l file.zip # 查看压缩包内文件列表
unzip -v file.zip # 显示详细信息(大小、日期等)
3. 覆盖/跳过文件
unzip -o file.zip # 强制覆盖已存在文件
unzip -n file.zip # 跳过已存在文件
4. 解压加密 ZIP 文件
unzip -P 123456 file.zip # 使用密码解压
5. 测试压缩包完整性
unzip -t file.zip # 检查压缩包是否损坏
6. 解压到单目录(忽略内部结构)
unzip -j file.zip # 所有文件直接解压到当前目录
7. 静默解压
unzip -q file.zip # 不输出解压过程信息
四、注意事项
-
编码问题:
如果 ZIP 包内文件名含中文乱码,尝试指定编码(需安装unzip-iconv
):unzip -O GBK file.zip # 指定 GBK 编码(常见中文编码)
-
分卷压缩包:
unzip
不支持直接解压分卷 ZIP(如z01
,z02
),需先用zip
命令合并:zip -s 0 split.zip --out merged.zip && unzip merged.zip
-
权限问题:
解压后文件可能丢失可执行权限,需手动添加:chmod +x script.sh
五、其他技巧
- 解压特定文件:
unzip file.zip "*.txt" -d /path # 仅解压 .txt 文件
- 管道结合使用:
curl -O URL.zip && unzip URL.zip # 下载后直接解压
通过灵活组合这些选项,可以高效处理大多数 ZIP 解压需求。遇到复杂情况时,可通过 man unzip
查看完整手册。
(www.nzw6.com)