我有一个很大的 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>}$"