linux - 在 zip 文件的递归目录中查找文件

标签 linux bash ubuntu sed grep

我有一个包含 zip 文件的完整目录结构。我愿意:

  1. 递归遍历整个目录结构,获取所有 zip 文件
  2. 我想在其中一个 zip 文件中找到一个特定文件“*myLostFile.ext”。

我尝试过的
1. 我知道我可以很容易地递归列出文件:

find myLostfile -type f

2。我知道我可以列出 zip 存档中的文件:

unzip -ls myfilename.zip

如何在 zip 文件的目录结构中查找特定文件?

最佳答案

您可以使用 for 省略对 .zip 文件的单级查找(或在 bash 4 中使用 globstar 递归)搜索循环方法:

for i in *.zip; do grep -iq "mylostfile" < <( unzip -l $i ) && echo $i; done

对于 bash 4 中的递归搜索:

shopt -s globstar
for i in **/*.zip; do grep -iq "mylostfile" < <( unzip -l $i ) && echo $i; done

关于linux - 在 zip 文件的递归目录中查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30127764/

相关文章:

linux - 在 bash 别名或函数中使用历史扩展

Qt 错误构建包 'fromString' 不是 'QKeySequence' 的成员

ubuntu - 支持自动换行/换行的 Linux 图形 difftool

python - 如何在 VS 代码 Debug模式下设置断点和命令行参数?

linux - block 设备上的未对齐写入

xml - 在没有 XML 解析器的情况下为最近修改的文件过滤 svn ls --xml

linux - 我如何使用 EPOLLHUP

linux - 如何使用 telegraf procstat 插件获取进程名称和进程状态(运行或停止)

linux - 如何在ubuntu中为常用的终端命令制作快捷方式

bash - 在评估文件以为单个命令设置环境变量时,如何支持注释?