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?


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


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


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

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.


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.


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


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.


2

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


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


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)


1
less -R não suporta cores ANSI.
Sylvain Leroux
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.