再帰なしでtarファイルのコンテンツをリストする方法は?


16

tar(gz、bzip)ファイルがあり、その内容を表示したいが、再帰的には表示したくない。

これは次のとおりです。ファイルの「最初のレベル」。

コンテンツの表示方法はすでに知っています。

tar -ztf file.tar.gz

しかし、それは再帰的です!!

ありがとう!

回答:


11

次のようなものはどうですか:

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


3
大きなtarballには時間が
かかります

18

tar --exclude='*/*' -tf yourarchive.tar それを行う必要があります。

それはほぼ間違いなくGNU tar-ismです。しかし、GNU tarを使用しないのは誰ですか?(別の面白い事実:GNU tarの最近のバージョンでは、.gzまたは.bzファイルをリストまたは解凍するために 'z'または 'j'は必要ありません-それらは自動検出され、動作します。)


理解しやすく覚えやすく、十分に高速です。
ウォルフ

2
これはすばらしいことですが、それがlist-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/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.