Как вывести список из файла tar без рекурсии?


17

У меня есть файл tar (gz, bzip), и я хочу видеть его содержимое, но не рекурсивно.

Это: «Первый уровень» в файле.

Я уже знаю, как увидеть контент:

tar -ztf file.tar.gz

Но это рекурсивно!

Благодарность!

Ответы:


11

Как насчет чего-то вроде:

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


3
Медленно для больших тарболлов, но выполнимо
Нику Стирка

19

tar --exclude='*/*' -tf yourarchive.tar должен сделать это.

Это почти наверняка GNU таризм. Но кто не использует GNU tar, верно? (Еще один забавный факт: в последних версиях GNU tar вам не нужны 'z' или 'j' для просмотра или распаковки файлов .gz или .bz - он автоматически определяет их и просто работает.)


Легче понять и запомнить и много быстро.
WALF

2
Это здорово, но я никогда не запомню этот список-t средств . Так что можно преобразовать в . -tf--list -f
раскрутка

Этот вариант намного быстрее принятого ответа, спасибо!
Dr_Zaszuś

Чтобы увидеть первый уровень иерархии я использовалtar --exclude='*/*/*' -tf yourarchive.tar
user3804598

1

Это должно показать каталоги верхнего уровня, а также только файлы, которые содержат символ точки:

$ 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/
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.