Wie liste ich Inhalte aus einer TAR-Datei ohne Rekursion auf?


16

Ich habe eine tar (gz, bzip) -Datei und möchte deren Inhalt sehen, aber nicht rekursiv.

Dies ist: Die "erste Ebene" in der Datei.

Ich weiß bereits, wie man Inhalte sieht:

tar -ztf file.tar.gz

Aber es ist rekursiv !!

Vielen Dank!

Antworten:


11

Wie wäre es mit so etwas wie:

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


3
Langsam für große Tarballs, aber funktionsfähig
Nicu Stiurca

18

tar --exclude='*/*' -tf yourarchive.tar Sollte es tun.

Das ist mit ziemlicher Sicherheit ein GNU-Ziel. Aber wer benutzt GNU Teer nicht, oder? (Eine weitere lustige Tatsache: In neueren Versionen von GNU tar brauchen Sie kein 'z' oder 'j', um .gz- oder .bz-Dateien aufzulisten oder zu dekomprimieren - es erkennt diese automatisch und es funktioniert einfach.)


Einfacher zu verstehen und zu merken und schnell genug.
Walf

2
Das ist großartig, aber ich werde mich nie daran erinnern, dass das -teine Liste bedeutet . So -tfkann konvertiert werden --list -f.
Spinup

Diese Option ist viel schneller als die akzeptierte Antwort, danke!
Dr_Zaszuś

Um die erste Hierarchieebene zu sehen, die ich verwendet habetar --exclude='*/*/*' -tf yourarchive.tar
user3804598

1

Hier sollten sowohl Verzeichnisse der obersten Ebene als auch Dateien mit dem Punkt angezeigt werden:

$ 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/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.