Veja a lista de arquivos no arquivo ZIP no Linux

407

Como posso visualizar a lista de arquivos em um arquivo ZIP sem descompactá-lo?

danidacar
fonte
É possível fazer o mesmo para um arquivo unix comum? (tar / gzip / bz2 / etc)
ThorSummoner
tar tvf. se .gz, adicione z. Para bz2, adicione j. Muito mais, consulte a página do manual.
UtahJarhead

Respostas:

470

O lessutilitário é capaz de espreitar um ziparquivo. De fato, se você observar as saídas de unzip -l zipfilee less zipfile, verá que elas são idênticas.

ayaz
fonte
98
Observe que, less zipfileno MacOS-X, exibe o conteúdo do arquivo binário, você vê muito lixo em vez do conteúdo do arquivo zip. Então você deve optar por `` descompactar -l zipfile```
heiglandreas
10
@ayaz Em que sistema menos lista os arquivos zip? Eu vejo comentários dizendo que ele não funciona no MAC, Ubuntu e aqui eu uso o Debian. O Debian também mostra lixo binário.
Dr Beco
12
No Ubuntu, tente view [zipfile].
Samuel Lampa 10/09
4
ERRADO. O unzip -l funciona bem para mostrar os arquivos dentro de um arquivo zip, mas em muitos casos, o conteúdo binário é menor e isso é uma bagunça, é claro.
Artur M
17
Você precisa do lesspipeajudante instalado para ativar o suporte a arquivos zip por menos. É padrão em muitos sistemas Linux, mas não no OSX, mas você pode instalá-lo com o brew.
Pimlottc
112

Experimentar unzip -l files.zip | less

Veja também man unzippara mais opções

Ken Ratanachai S.
fonte
6
Você pode pular o pipe para lesscomandar. É uma ótima idéia em uma grande coleção de arquivos.
Omar
65

Para listar o conteúdo do zip:

zipinfo -1 myzipfile.zip

Para saída detalhada:

zipinfo myzipfile.zip
kinORnirvana
fonte
7
Boa resposta, você não precisa analisar a saída apenas para obter os nomes de arquivos.
Antoine Pelisse
34

Por favor, use

vim ZIP_FILE_NAME

para o mesmo. Este é um simples e fácil de lembrar.

Rajasekhar Tolety
fonte
5
Bom, isso também permite abrir arquivos individuais no arquivo sem fazer o unzip
user3885927
Muito inesperado e extremamente útil! Obrigado!
Pierre
Na verdade: isso não funcionará se unzipnão estiver instalado no sistema. Além disso, incrível!
sjas 24/03
13

Você pode fazer o zip aparecer como um diretório (em que você usa cd, lsetc.) por montá-lo com o fusível-zip sistema de arquivos virtual.

mkdir foo.d
fuse-zip foo.zip foo.d
ls foo.d
cat foo.d/README
...
fusermount -u foo.d
rmdir foo.d

Outro sistema de arquivos FUSE relevante é o AVFS . Ele cria uma visão de toda a hierarquia de diretórios, na qual todos os arquivos têm um diretório associado (o mesmo nome com o nome #listado no final) que parece conter o conteúdo do arquivo.

mountavfs
ls ~/.avfs/$PWD/foo.zip\#
cat ~/.avfs/$PWD/foo.zip\#/README
...
umountavfs

Muitos gerenciadores de arquivos modernos (por exemplo, Nautilus, Dolphin) mostram o conteúdo do arquivo de forma transparente.

AVFS é somente leitura. Fuse-zip é leitura e gravação, mas cuidado para que as alterações sejam gravadas apenas no arquivo zip no momento da desmontagem; portanto, não comece a ler o arquivo esperando que seja modificado até que fusermount -uretorne.

Gilles
fonte
Legal, Giles. Obrigado. Apenas uma rápida: pode-se adicionar arquivos a ele apenas "cp" no diretório?
Dr Beco
@DrBeco Com zip fusível, sim. Com avfs, não.
Gilles
9

Pelo menos no Ubuntu, o comando possivelmente mais fácil é:

view [zipfile]

Isso abrirá a lista de arquivos no seu editor de texto padrão (nano, vim etc.).

Samuel Lampa
fonte
2

É realmente unzip -l file.zip | grep "search"ou se você tem muitos arquivos

for i in `ls *zip`; do 
  unzip -l $i | grep "search"; 
done

Atualização: alterada de '-p' para '-l' para procurar arquivos.

Roubar
fonte
2

Se você é mais orientado graficamente, o Midnight Commander também pode procurar arquivos zip como se fossem diretórios regulares.

Charles Burge
fonte
1

Uma solução mais abrangente: vim || emacs

A resposta anterior de @kinORnirvana é a minha favorita para produzir um arquivo com o conteúdo de um arquivo zip.

zipinfo [-1] archive.zip > archive_content.txt

No entanto, eu recomendo o vim ou emacs (não o nano) se você precisar navegar em um arquivo morto ou até mesmo exibir o conteúdo de um arquivo contido nele.

vim archive.zip

Essa abordagem também funciona com outros formatos de arquivo:

vim file.tar
vim file.tar.gz
vim file.tar.bz2

Com o vim ou emacs, você pode:

  • procure a estrutura de diretórios do arquivo morto.
  • visualizar o conteúdo de qualquer arquivo dentro do arquivo morto.

insira a descrição da imagem aqui

ePi272314
fonte
0

(yaa) Mais uma resposta:

Alias ​​este comando:

alias vless='/usr/share/vim/vim73/macros/less.sh'

e você pode usar vless file.zippara aproveitar vi(ou vim) menos script.

(também é bom substituir menos, para que você possa ter cores)

Dr Beco
fonte
1
less -R não suporta cores ANSI.
Sylvain Leroux