¿Cómo listar contenido de un archivo tar sin recursividad?


16

Tengo un archivo tar (gz, bzip) y quiero ver su contenido, pero no de forma recursiva.

Esto es: el "primer nivel" en el archivo.

Ya sé cómo ver el contenido:

tar -ztf file.tar.gz

¡Pero es recursivo!

¡Gracias!

Respuestas:


11

¿Qué tal algo como:

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


3
Lento para grandes tarballs, pero viable
Nicu Stiurca

18

tar --exclude='*/*' -tf yourarchive.tar Deberías hacerlo.

Eso es casi seguro un tar-ismo de GNU. Pero, ¿quién no usa GNU tar, verdad? (Otro dato divertido: en versiones recientes de GNU tar, no necesita la 'z' o 'j' para enumerar o descomprimir archivos .gz o .bz; los detecta automáticamente y simplemente funciona).


Más fácil de entender y recordar y mucho más rápido.
Walf

2
Esto es genial, pero nunca recordaré que eso -tsignifica lista . Entonces -tfse puede convertir a --list -f.
spinup

Esta opción es mucho más rápida que la respuesta aceptada, ¡gracias!
Dr_Zaszuś

Para ver el primer nivel de jerarquía que utilicétar --exclude='*/*/*' -tf yourarchive.tar
user3804598 el

1

Esto debería mostrar directorios de nivel superior, así como solo archivos que incluyen el carácter de punto:

$ 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/
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.