標準出力をgzipしてファイルを保存している場合など、元のファイルのサイズがわからないときに、伸長して圧縮率を確認したいときがある。

gzip -l, gzip --listを使うと説明されることが多いが、gzip -lには以下のバグがあるため利用しないほうがいい。

gzip 形式では、入力サイズは 2^32 の余りで表現されるため、 --list オプション による表示では、圧縮前のファイルが 4GB 以上の場合、圧縮前のサイズや圧縮率が 正しく表示されない。

引用元: https://linuxjm.osdn.jp/html/GNU_gzip/man1/gzip.1.html

実際に伸長するとDISK容量が足りなくなるおそれがあるので、標準出力に伸長して、wc -cに流すことでバイト数を取得する。
標準出力に伸長する方法は以下の通り3つほどある。下に行くほどおすすめ。gzipではcompressで圧縮されたものを扱えないが、gunzipとzcatであれば扱える。zcatはコマンドオプションもいらないため一番書きやすい。

gzip -dc file.gz | wc -c
gunzip -c file.gz | wc -c
zcat file.gz | wc -c