web-dev-qa-db-ja.com

(解凍せずに)tar.gzファイル内のファイルの数を数える方法は?

Pigz(並列gzip)で作成したtar.gzファイルがあります。圧縮ファイルを解凍せずに、圧縮ファイル内のファイル数を数えたかったのです。

私はこのコマンドを使用します:

tar -tzf file.tar.gz

しかし、エラーが発生しました:

tar: This does not look like a tar archive
tar: Skipping to next header

Gzipの代わりにpigzを使用したからですか?はいの場合、どうすればそれらを今数えることができますか?

11
user3576287

これはtarおよびgzipアーカイブであるため、gzipを使用するにはzオプションを使用する必要があります。次に、wcで行を数えるだけです。

tar -tzf file.tar.gz | wc -l
19
jdiver

tar -vv verboseオプションを2回使用して完全に詳細にし、ファイルのアクセス許可から最初の文字をgrepすることができます。 ^は、最初の文字(行頭)のみに一致することを意味します。 grep-cオプションは行をカウントします。

drwxrwx--x   directory
lrwxrwxrwx   symlink
-rw-rw----   file

通常のファイルのみをカウントする

gzip -cd file.tar.gz | tar -tvv | grep -c ^-
2
alecxs

私は解決策を見つけました!

これらのファイルにunpigzを使用したところ、ファイル拡張子が.tarに変更されました。その後、問題なくtar-tzfを使用できました。

ありがとう!

0
user3576287