Як перерахувати вміст з файлу 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, правда? (Ще один цікавий факт: в останніх версіях GNU tar вам не потрібні "z" або "j", щоб перераховувати або скасовувати файли .gz або .bz - він автоматично визначає їх, і він просто працює.)


Легше зрозуміти і запам’ятати і багато швидко.
Вальф

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.