解説
tarとgzipは何が違う?ファイルをまとめることと圧縮を分けて試そう
サーバーの手順で見かける.tar.gz。名前が二つ付いているのは、まとめる処理と圧縮する処理が組み合わされているためだよ。

サーバーの手順で見かける.tar.gz。名前が二つ付いているのは、まとめる処理と圧縮する処理が組み合わされているためだよ。
このページはGNU tarとgzipの基本を、練習用のファイルだけで試す。OSや実装によってオプションが異なる場合があるので、ここではGNU/Linuxを対象にする。
アーカイブと圧縮
アーカイブは、複数のファイルやフォルダーなどを一つへまとめること。圧縮は、内容を復元できる形で表現し、容量を減らすことを目指す処理だよ。
tarはまとめるために使い、gzipは圧縮に使う。.tar.gzは、tarのアーカイブをgzipで圧縮した形式としてよく使われる。名前だけを書き換えても形式は変わらない。
作ったものを先に一覧で読む
空の作業場所で実行する。すでに同名のフォルダーやファイルがあれば、別の場所を使おう。
mkdir archive-practice
cd archive-practice
mkdir inputs output
printf 'sample\n' > inputs/note.txt
tar -czf practice.tar.gz inputs
tar -tzf practice.tar.gz
-cは作成、-zはgzip、-fは対象ファイルの指定。この例の-tは中の名前を一覧にする確認で、まだ展開しない。inputsと、その中のnote.txtが見えることを確かめよう。
空の場所へ展開する
tar -xzf practice.tar.gz -C output
cat output/inputs/note.txt
-xは取り出す操作、-Cは展開先を指定する。この練習では、空のoutputへ取り出し、sampleと読めることを確認したよ。作業中のフォルダーへ無条件に展開すると、同名のファイルなどへ影響する場合があるので、対象を分けることが大切。
一つのファイルをgzipで圧縮するなら
gzip -c inputs/note.txt > note.txt.gz
gzip -dc note.txt.gz
-cは結果を標準出力へ出すため、この例では元のnote.txtを残して圧縮結果を別のファイルへ保存できる。-dは展開に使う。最後にsampleと表示されるよ。
小さいデータでは、圧縮して必ず容量が小さくなるとは限らない。元の形式や管理情報も影響するんだ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。