Come elencare il contenuto da un file tar senza ricorsione?


16

Ho un file tar (gz, bzip) e voglio vederne il contenuto, ma non ricorsivamente.

Questo è: il "primo livello" nel file.

So già come vedere i contenuti:

tar -ztf file.tar.gz

Ma è ricorsivo !!

Grazie!

Risposte:


11

Che ne dici di qualcosa come:

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


3
Lento per tarball di grandi dimensioni, ma praticabile
Nicu Stiurca,

18

tar --exclude='*/*' -tf yourarchive.tar dovrebbe farlo.

Questo è quasi certamente un tar-ism GNU. Ma chi non usa il tar GNU, giusto? (Un altro fatto divertente: nelle ultime versioni di GNU tar, non hai bisogno di 'z' o 'j' per elencare o decomprimere i file .gz o .bz - li rileva automaticamente e funziona.)


Più facile da capire e ricordare e molto velocemente.
Walf

2
Questo è fantastico, ma non ricorderò mai che -tsignifica elenco . Quindi -tfpuò essere convertito in --list -f.
spinup,

Questa opzione è molto più veloce della risposta accettata, grazie!
Dr_Zaszuś,

Per vedere il primo livello della gerarchia che ho usatotar --exclude='*/*/*' -tf yourarchive.tar
user3804598

1

Questo dovrebbe mostrare directory di livello superiore e solo file che includono il carattere 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/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.