Làm thế nào để liệt kê nội dung từ một tập tin tar mà không cần đệ quy?


16

Tôi có một tệp tar (gz, bzip) và muốn xem nội dung của nó, nhưng không đệ quy.

Đây là: "Cấp độ đầu tiên" trong tệp.

Tôi đã biết cách xem nội dung:

tập tin tar -ztf.tar.gz

Nhưng đó là đệ quy !!

Cảm ơn!

Câu trả lời:


11

Làm thế nào về một cái gì đó như:

tập tin tar -ztf.tar.gz | egrep '^ [^ /] + /? $'


3
Chậm cho các tarball lớn, nhưng hoàn toàn khả thi
Nicu Stiurca

18

tar --exclude='*/*' -tf yourarchive.tar Hãy làm nó.

Đó gần như chắc chắn là một tar-ism GNU. Nhưng ai không sử dụng GNU tar, phải không? (Một sự thật thú vị khác: trong các phiên bản gần đây của GNU tar, bạn không cần 'z' hoặc 'j' để liệt kê hoặc giải nén các tệp .gz hoặc .bz - nó tự động phát hiện các tệp đó và nó chỉ hoạt động.)


Dễ hiểu và dễ nhớ hơn và nhanh chóng.
Walf

2
Điều này thật tuyệt, nhưng tôi sẽ không bao giờ nhớ đó -tdanh sách . Vì vậy, -tfcó thể được chuyển đổi thành --list -f.
spinup

Tùy chọn này nhanh hơn nhiều so với câu trả lời được chấp nhận, cảm ơn bạn!
Dr_Zaszuś

Để xem cấp độ phân cấp đầu tiên tôi đã sử dụngtar --exclude='*/*/*' -tf yourarchive.tar
3804598

1

Điều này sẽ hiển thị các thư mục cấp cao nhất cũng như chỉ các tệp có chứa ký tự dấu chấm:

$ 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/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.