4 高度な使い方

複数の圧縮ファイルは連結できます。この場合、gunzipはすべてのメンバーを一度に展開します。1つのメンバーが壊れていても、そのメンバーを取り除けば他のメンバーを復元できる場合があります。通常、すべてのメンバーを展開し、まとめて再圧縮すると、より高い圧縮率が得られます。

gzipファイルを連結する例を示します。

gzip -c file1  > foo.gz
gzip -c file2 >> foo.gz

この場合、次のコマンドは、

gunzip -c foo

次のコマンドと同じ結果になります。

cat file1 file2

「.gz」ファイルの1つのメンバーが壊れた場合も、壊れたメンバーを取り除けば他のメンバーを復元できます。ただし、すべてのメンバーをまとめて圧縮するほうが、高い圧縮率が得られます。次のコマンドは、

cat file1 file2 | gzip > foo.gz

次のコマンドより高い圧縮率になります。

gzip -c file1 file2 > foo.gz

連結済みのファイルを再圧縮して圧縮率を高めたい場合は、次のようにします。

zcat old.gz | gzip > new.gz

圧縮ファイルが複数のメンバーで構成されている場合、--listオプションが報告する展開後のサイズとCRCは、最後のメンバーだけの値です。全メンバーの展開後のサイズが必要なら、次のコマンドを使えます。

zcat file.gz | wc -c

複数のメンバーを、後から個別に取り出せる1つのアーカイブファイルにまとめたい場合は、tarやzipなどのアーカイバーを使ってください。GNU tarは-zオプションでgzipを透過的に呼び出せます。gzipはtarを補うものとして設計されており、置き換えるものではありません。