Comment lister le contenu d'un fichier tar sans récursivité?

17

J'ai un fichier tar (gz, bzip) et je veux voir son contenu, mais pas récursivement.

C'est: Le "premier niveau" dans le fichier.

Je sais déjà comment voir le contenu:

tar -ztf file.tar.gz

Mais c'est récursif !!

Merci!

santiago.basulto
la source

Réponses:

11

Que diriez-vous de quelque chose comme:

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

dmah
la source
3
Lent pour les gros tarballs, mais réalisable
Nicu Stiurca
19

tar --exclude='*/*' -tf yourarchive.tar devrait le faire.

C'est presque certainement un tarisme GNU. Mais qui n'utilise pas GNU tar, non? (Autre fait amusant: dans les versions récentes de GNU tar, vous n'avez pas besoin du 'z' ou du 'j' pour lister ou décompresser les fichiers .gz ou .bz - il les détecte automatiquement et cela fonctionne juste.)

mattdm
la source
Plus facile à comprendre et à mémoriser et très rapidement.
Walf
2
C'est super, mais je ne me souviendrai jamais de cette liste de-t moyens . Peut donc être converti en . -tf--list -f
rotation
Cette option est beaucoup plus rapide que la réponse acceptée, merci!
Dr_Zaszuś
Pour voir le premier niveau de hiérarchie que j'ai utilisétar --exclude='*/*/*' -tf yourarchive.tar
user3804598
1

Cela devrait montrer les répertoires de niveau supérieur ainsi que les fichiers qui incluent le caractère point:

$ 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/
Sam Halicke
la source