Como posso inscrever o conteúdo de um arquivo zip, mas apenas o primeiro nível?

6

Eu tenho um grande arquivo zip e quero saber o que ele contém. Eu sei que posso correr:

zipinfo file.zip

mas a saída é muito detalhada e há um lote de arquivos nos subdiretórios.

Eu quero ver uma lista dos arquivos no nível superior.

Exemplo

Se a saída normal for:

-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/
...

Eu quero um comando que produza:

-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/
...
    
por Sapir 20.04.2012 / 17:29

1 resposta

4

Você pode filtrar a saída com o grep. Aqui estou dizendo ao grep para esconder todas as linhas que contenham uma barra '/' e qualquer coisa depois da barra:

zipinfo file.zip | grep -v "/."
    
por 20.04.2012 / 17:33