Como listar o conteúdo de um arquivo tar sem recursão?

15

Eu tenho um arquivo tar (gz, bzip) e quero ver seu conteúdo, mas não recursivamente.

Isto é: O "primeiro nível" no arquivo.

Eu já sei ver o conteúdo:

tar -ztf file.tar.gz

Mas é recursivo !!

Obrigado!

    
por santiago.basulto 24.11.2010 / 21:33

3 respostas

11

Que tal algo como:

tar -ztf file.tar.gz | egrep '^ [^ /] + /? $'

    
por 24.11.2010 / 22:37
13

tar --exclude='*/*' -tf yourarchive.tar deve fazê-lo.

Isso é quase certamente um tar-ismo do GNU. Mas quem não usa o GNU tar, certo? (Outro fato interessante: em versões recentes do GNU tar, você não precisa do 'z' ou 'j' para listar ou descompactar arquivos .gz ou .bz - ele auto-detecta aqueles e simplesmente funciona.)

    
por 24.11.2010 / 22:47
1

Isso deve mostrar diretórios de nível superior, bem como arquivos que incluam o caractere de ponto:

$ tar -tf app.tar.gz | grep -E '^\w+(\.\w+)*/*\w+(\.\w+)*/?$'

django/
django/django.wsgi
django/search_indexes/
django/templates/
django/app/
django/other-app/
    
por 24.11.2010 / 23:05