如何获取zip中的目录列表?

car*_*ing 9 linux bash zip unzip

我正在寻找一种方法来在Linux下的bash中的zip文件中列出目录.我发现有一个叫做的应用程序zipinfo,它可以列出zip中的路径(没有任何额外的噪音,必须解析通过(zipinfo -1 foo.zip),而不是unzip -l foo.zip).但是,这还不够好,我想知道是否有更好的方法.

Cyr*_*rus 11

仅列出目录:

unzip -l foo.zip "*/"
Run Code Online (Sandbox Code Playgroud)

输出(例如):

Archive:  foo.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2015-09-10 20:10   work/
        0  2015-08-31 10:45   work/test1/
        0  2015-08-31 10:50   work/test1/cc/
        0  2015-08-31 10:45   work/test1/dd/
        0  2015-08-31 10:45   work/test1/aa/
        0  2015-08-31 10:45   work/test1/bb/
        0  2015-09-09 21:17   work/tmp/
        0  2015-08-23 18:49   work/tmp/work/
        0  2015-09-08 19:33   work/tmp/work/loop/
        0  2015-08-15 16:00   work/tmp/work/1/
        0  2015-08-15 16:00   work/1/
        0  2015-08-24 18:40   work/dir/
        0  2015-09-05 18:07   work/rename/
---------                     -------
        0                     13 files

或使用

zipinfo -1 foo.zip "*/"
Run Code Online (Sandbox Code Playgroud)

输出(例如):

work/
work/test1/
work/test1/cc/
work/test1/dd/
work/test1/aa/
work/test1/bb/
work/tmp/
work/tmp/work/
work/tmp/work/loop/
work/tmp/work/1/
work/1/
work/dir/
work/rename/

  • `unzip -l foo.zip "*/"` 和 `zipinfo -1 foo.zip "*/"` 都不是可靠的解决方案:Zip 文件可能是在没有专用目录条目的情况下创建的。例如,“zip”工具具有选项“-D 不添加目录条目”。 (3认同)
  • `zipinfo -1 foo.zip "*/"` 效果最好,谢谢!:) (2认同)