Jak wyświetlić zawartość z pliku tar bez rekurencji?

17

Mam plik tar (gz, bzip) i chcę zobaczyć jego zawartość, ale nie rekurencyjnie.

To jest: „Pierwszy poziom” w pliku.

Wiem już, jak zobaczyć zawartość:

tar -ztf plik.tar.gz

Ale to rekurencyjne !!

Dzięki!

santiago.basulto
źródło

Odpowiedzi:

11

Co powiesz na coś takiego:

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

dmah
źródło
3
Powolny dla dużych tarball, ale wykonalny
Nicu Stiurca,
19

tar --exclude='*/*' -tf yourarchive.tar powinien to zrobić.

To prawie na pewno tar-izm GNU. Ale kto nie używa tar GNU, prawda? (Kolejny fajny fakt: w najnowszych wersjach GNU tar nie potrzebujesz „z” lub „j” do wyświetlania lub rozpakowywania plików .gz lub .bz - automatycznie je wykrywa i po prostu działa.)

mattdm
źródło
Łatwiejsze do zrozumienia i zapamiętania i dużo szybciej.
Walf
2
To świetnie, ale nigdy nie zapamiętam, że -tto oznacza listę . Więc -tfmożna go przekonwertować na --list -f.
spinup
Ta opcja jest znacznie szybsza niż zaakceptowana odpowiedź, dziękuję!
Dr_Zaszuś
Aby zobaczyć pierwszy poziom hierarchii, którego użyłemtar --exclude='*/*/*' -tf yourarchive.tar
użytkownik3804598
1

Powinno to pokazywać katalogi najwyższego poziomu, a także tylko pliki zawierające znak kropki:

$ 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
źródło