make`unzip`尝试解压缩文件,如果它们存在而没有失败,如果不是

时间:2016-08-02 13:30:13

标签: bash shell unix

如何解压缩忽略未找到的文件?

当我运行unzip myArchive.zip config/*config/*与归档中的任何文件都不匹配时,我得到了返回码11。

是否可以让unzip尝试解压缩文件,如果它们存在而没有失败,如果不存在? 如果是这样,怎么样?

我没有在解压缩手册中找到任何选项将它变成"如果你失败就闭嘴,兄弟!"模式。

当然,我可以做unzip myArchive.zip config/* | true这样的事情,但对我来说看起来真的很难看。

感谢您的帮助

编辑:它已被确定为dupplicate。它可能是。另一个答案非常有用,但是让命令忽略所有错误。我期望一个选项/技巧,只是简单地跳过未发现的文件,并让命令在其他错误情况下保持失败(例如,如果存档不存在)。

2 个答案:

答案 0 :(得分:2)

由于此退出状态是针对此单个错误案例保留的,您可以:

unzip myArchive.zip config/* || \
( e=$? && if [ $e -ne 11 ]; then exit $e; fi )

答案 1 :(得分:-1)

删除错误消息,错误退出代码和任何消息:

unzip -qq myArchive.zip config/* 2> /dev/null || true