我有一个zip文件,它在Windows服务器上压缩并具有Windows目录结构。
我正在尝试使用以下命令在ubuntu服务器上解压缩该文件:
/tmp/temp » unzip -d /tmp/temp/temp backup.zip
解压缩工作正常,目录结构自动转换为基于Linux的目录结构。但是由于某些原因,extract命令的退出代码为1,这使我的Jenkins工作变得混乱,而这一工作还没有进一步发展。
inflating: /tmp/temp/temp/fs/site/wwwroot/vendor-a2341eb904.js
inflating: /tmp/temp/temp/fs/site/wwwroot/vendor-fc433e18b6.css
inflating: /tmp/temp/temp/fs/site/wwwroot/web.config
inflating: /tmp/temp/temp/meta
------------------------------------------------------------
/tmp/temp » echo $?
1
我甚至测试了存档以将提取文件的CRC与存档中的CRC进行比较,它似乎没问题:
testing: fs\site\wwwroot\vendor-fc433e18b6.css OK
testing: fs\site\wwwroot\web.config OK
testing: meta OK
No errors detected in compressed data of backup.zip.
------------------------------------------------------------
/tmp/temp » echo $?
0
知道unzip命令中返回码1的原因是什么?
顺便说一句:我还在jenkins工作中尝试set +e
忽略退出代码,但这并没有提供任何帮助。
答案 0 :(得分:1)
如果已跳过任何文件,请使用-v
选项
返回值为1
遇到一个或多个警告错误,但处理已完成 无论如何成功。这包括zipfiles,其中包含一个或多个文件 由于不支持的压缩方法或加密而被跳过 一个未知的密码。
答案 1 :(得分:1)
如果您遇到这个问题并且它导致您的 shell 脚本突然结束而没有错误,请检查您的 shell 脚本文件顶部是否有 set -e
命令。
如果任何执行行抛出任何错误,Set -e 将结束您的脚本。
在许多情况下,即使存在非严重警告并且解压成功,解压退出也会出现错误代码。