我怎样才能列出 zip 档案的内容,但只列出第一级?

我怎样才能列出 zip 档案的内容,但只列出第一级?

我有一个很大的 zip 文件,我想知道它包含什么。我知道我可以运行:

zipinfo file.zip

但输出太冗长,并且有很多子目录中的文件。

我想要查看顶层文件的列表。

例子

如果正常输出是:

-sh-3.2$ zipinfo file.zip
Archive:  file.zip   999999999 bytes   99999 files
-rw-r--r--  2.3 unx     3894 tx defN  3-Jul-11 13:11 file1
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir1/
-rw-r--r--  2.3 unx      269 tx defN 23-Oct-11 14:34 dir1/file2
drwxr-xr-x  2.3 unx        0 bx stor 25-Sep-11 03:53 dir1/subdir1/
...
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir2/
...

我想要一个输出的命令:

-sh-3.2$  <answer>
Archive:  file.zip   999999999 bytes   99999 files
-rw-r--r--  2.3 unx     3894 tx defN  3-Jul-11 13:11 file1
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir1/
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir2/
drwxr-xr-x  2.3 unx        0 bx stor 23-Feb-12 21:00 dir3/
...

答案1

您可以使用 grep 过滤输出。这里我告诉 grep 隐藏所有包含斜杠“/”以及斜杠后的任何内容的行:

zipinfo file.zip | grep -v "/."

答案2

扩展并建立在@dvb 的答案之上,您可以使用扩展的正则表达式设置深度级别:

zipinfo file.zip | egrep "^([^/]*/?){<deepness-level>}$"

相关内容