一、命令介绍

unzip命令是用于.zip格式文件的解压缩工具。unzip命令将列出、测试或从 zip 格式存档中提取文件。

二、命令选项

unzip [选项] [参数] [文件]

选项 说明
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-f 更新现有的文件
-l 显示压缩文件内所包含的文件
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t 检查压缩文件是否正确
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-v 执行时显示详细的信息
-z 仅显示压缩文件的备注文字
-a 对文本文件进行必要的字符转换
-b 不要对文本文件进行字符转换
-C 压缩文件中的文件名称区分大小写
-j 不处理压缩文件中原有的目录路径
-L 将压缩文件中的全部文件名改为小写
-M 将输出结果送到more程序处理
-n 解压缩时不要覆盖原有的文件
-o 不必先询问用户,unzip执行后覆盖原有的文件
-P <密码> 使用zip的密码选项
-q 执行时不显示任何信息
-s 将文件名中的空白字符转换为底线字符
-V 保留VMS的文件版本信息
-X 解压缩时同时回存文件原来的UID/GID
-d <目录> 指定文件解压缩后所要存储的目录
-x <文件> 指定不要处理.zip压缩文件中的哪些文件
-Z unzip -Z 等于执行 zipinfo 指令
注:不必过多关注这么多的选项,常用的选项就几个:-d、-l、-v、-o等。

三、命令示例

1、解压文件
unzip test.zip

2、将文件解压到指定目录下
unzip -n test.zip -d /test #如果test目录已有相同文件存在,不覆盖
unzip -o test.zip -d /test #如果test目录已有相同文件存在,不询问直接覆盖

3、查看压缩包内的文件列表及有关的压缩信息
unzip -v test.zip

4、验证压缩文件是否完整
unzip -t test.zip

5、解压指定目录到指定文件夹
test.war中有WEB-INF/lib目录 (通常java打的war包都有这个路径)
unzip -o test.war 'WEB-INF/lib/*' -d /test
会生成解压后的目录:/test/WEB-INF/lib/

6、将指定文件解压到指定文件夹下
test.war中有WEB-INF/lib/aa.yaml配置文件
unzip -o test.war '*/aa.yaml' -d /test ##解压后的文件:/test/WEB-INF/lib/aa.yaml
-j 忽略掉压缩文件中的目录结构
unzip -o -j test.war '*/aa.yaml' -d /test ##解压后的文件:/test/aa.yaml