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


16

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!

Respostas:


11

Que tal algo como:

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


3
Lento para tarballs grandes, mas viável #
Nicu Stiurca

18

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

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


Mais fácil de entender e lembrar e muito rápido.
Walf

2
Isso é ótimo, mas nunca vou lembrar que isso -tsignifica lista . Então -tfpode ser convertido para --list -f.
spinup 18/10/19

Esta opção é muito mais rápida que a resposta aceita, obrigado!
Dr_Zaszuś 17/01/19

Para ver o primeiro nível de hierarquia que eu useitar --exclude='*/*/*' -tf yourarchive.tar
user3804598 25/07/19

1

Isso deve mostrar diretórios de nível superior, bem como apenas arquivos que incluem 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/
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.