问题描述
之前做BOSS系统云平台部署脚本,联调时发现Shell脚本中存在问题,下方记录
某个地方提示是否覆盖
[root@haiwai test]# unzip /home/redis/test/main-d-1544-160316.zip -d /home/redis/test/stariboss
Archive: /home/redis/test/main-d-1544-160316.zip
replace /home/redis/test/stariboss/DBPasswordEncryption.bat?
[y]es, [n]o, [A]ll, [N]one, [r]ename:
查询了 UNZIP命令,通过-o 解决了这个问题
-o 使解压时不必先询问用户,unzip执行后覆盖原有文件。
unzip -o /home/redis/test/main-d-1544-160316.zip -d /home/redis/test/stariboss一ou
意识到,shell脚本时要注意异常问题,因为执行过程中可能会调适脚本,这样某些异常文件还存在, 编写时需要处理, 例如解压缩时使用-o 处理,或者脚步中提前使用rm将一些临时文件删除掉,避免因为脚本错误,没有删除,后续又因为这些异常文件或者数据导致其他问题
UNZIP 指令总结
命令名: unzip
功 能说明:解压缩zip文 件
语 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密 码>][.zip文 件][文件][-d 目录>][-x 文件>] 或 unzip [-Z]
补充说明:unzip为.zip压缩文件的解压缩程序。
参 数:
-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。
[.zip文件] 指定.zip压缩文件。
[文件] 指定 要处理.zip压缩文 件中的哪些文件。
-d目录> 指 定文件解压缩后所要存储的目录。
-x文件> 指 定不要处理.zip压 缩文件中的哪些文件。
-Z unzip -Z等 于执行zipinfo指 令。