Você pode usar less
com script lesspipe
de Wolfgang Friebel : less file.zip:sub_file.zip
Eu sei que posso usar unzip -l file.zip
para ver a lista de arquivos de um arquivo zip.
Mas tem um arquivo zip dentro de outro arquivo zip. Eu tentei unzip -l file.zip/sub_file.zip
, mas falhei.
É possível visualizar a lista de arquivos do sub_file.zip
sem extraí-lo?
Você pode usar less
com script lesspipe
de Wolfgang Friebel : less file.zip:sub_file.zip
com zsh
:
$ unzip -l a.zip.zip
Archive: a.zip.zip
Length Date Time Name
--------- ---------- ----- ----
195 2014-08-18 09:38 a.zip
--------- -------
195 1 file
$ unzip -l =(unzip -p a.zip.zip a.zip)
Archive: /tmp/zsh0i0JyZ
Length Date Time Name
--------- ---------- ----- ----
55 2014-08-15 15:24 a
--------- -------
55 1 file
=(...)
é uma terceira forma de substituição de processo que usa um arquivo temporário em vez de um canal ( unzip
só funciona com arquivos pesquisáveis).
unzip -l file.zip/sub_file.zip
não funciona porque file.zip
não é um diretório: é um arquivo comum que está em um formato de arquivo. Mas você pode criar um diretório que espelhe o conteúdo do arquivo zip, montando um sistema de arquivos que apresente uma visão do conteúdo do arquivo zip. Existem várias opções, escolha o que for mais fácil de instalar na sua distribuição:
Por exemplo, com arquivemount:
mkdir file.d
archivemount file.zip file.d
unzip -l file.d/sub_file.zip
fusermount -u file.d
ou até mesmo
mkdir file.d sub_file.d
archivemount file.zip file.d
archivemount file.d/sub_file.zip sub_file.d
ls -lR sub_file.d
fusermount -u sub_file.d
fusermount -u file.d
Veja Extraia apenas um arquivo específico de um arquivo compactado para um determinado diretório , Como faço para recursivamente grep através de arquivos compactados? e Procure por arquivos com um tamanho específico dentro de arquivos zipados recursivos para exemplos de AVFS e fusível-zip em situações semelhantes.
Tags command-line bash zip