我必须根据其内部结构处理 46 个 .zip 文件。
分支阐述的第一个有用检查是检查 .zip 中是否存在特定文件。
实际上我正在解压缩并测试解压缩文件是否存在。
但是,我问你,有没有一种方法可以只使用 bash 命令来检查文件是否在 zip 文件中而无需完全解压缩?
最佳答案
要检查特定文件,您可以结合使用 unzip -l
和 grep
来搜索该文件。该命令看起来像这样
unzip -l archive.zip | grep -q name_of_file && echo $?
它的作用是列出 archive.zip
中的所有文件,将它们通过管道传输到 grep
以搜索 name_of_file
。 grep
如果找到匹配项,退出代码为 0
。 -q
使 grep 的输出静音,并在找到匹配项时立即退出,退出代码为 0
。 echo $?
将打印 grep
的退出代码。如果您想在 if 语句中使用它,您的 bash 脚本将如下所示:
unzip -l archive.zip | grep -q name_of_file;
if [ "$?" == "0" ]
then
...
fi;
关于Bash:如何检查 zip 文件是否包含指定的路径/file.ext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034256/