Linuxでtar.gzとは?仕組みと読み方を初心者向けに解説
生徒
「先生、Linuxでダウンロードしたファイルがfile.tar.gzって名前なんですけど、これって何ですか?」
先生
「それは圧縮されたアーカイブファイルですよ。複数のファイルをまとめて、さらに小さくしたものなんです。」
生徒
「まとめて小さくする?それって何のためにやるんですか?」
先生
「ファイルの配布やバックアップを効率よくするためです。詳しく説明していきますね。」
1. tar.gzとは何か?
tar.gzは、Linuxで広く使われている圧縮アーカイブファイルの形式です。正確には「tarファイル」を「gzip」という方法で圧縮したものを指します。
WindowsでいうZIPファイルのようなものだと考えてください。複数のファイルやフォルダを一つにまとめて、さらにサイズを小さくしているのです。インターネットからLinuxのソフトウェアをダウンロードすると、この形式で配布されていることが非常に多いです。
拡張子は.tar.gzのほかに、.tgzと略されることもあります。どちらも同じ意味で、中身は同じ形式のファイルです。
2. tar.gzの読み方と名前の由来
tar.gzの読み方は「タール・ジーゼット」または「タール・ジップ」と読みます。英語圏では「tar-gzipped file」などと呼ばれることもあります。
この名前は二つの技術を組み合わせたものです。tarは「Tape ARchive(テープアーカイブ)」の略で、もともと磁気テープにデータをバックアップするために作られたコマンドです。昔のコンピュータでは、大量のデータを保存するために磁気テープが使われていました。
gzは「gzip(ジーザップ、またはジーズィップ)」の略で、ファイルを圧縮する技術です。GNU(グニュー)プロジェクトが開発した圧縮プログラムで、データサイズを小さくするために使われます。
3. tar.gzの仕組みを理解しよう
tar.gzファイルは、実は二段階の処理を経て作られています。この二段階の処理を理解することが、tar.gzを理解する鍵になります。
第一段階:tarでアーカイブ化
まず、複数のファイルやディレクトリを一つのtarファイルにまとめます。これを「アーカイブ化」と呼びます。アーカイブとは、複数のファイルを一つのファイルにまとめることです。この段階では圧縮はされておらず、単純にファイルが連結されているだけです。
第二段階:gzipで圧縮
次に、作成したtarファイルをgzipで圧縮します。圧縮とは、データの中の重複や無駄を取り除いて、ファイルサイズを小さくすることです。これにより、配布やバックアップが効率的になります。
たとえるなら、引っ越しのときに服や本をダンボール箱に詰めて(アーカイブ化)、さらにその箱を圧縮袋で小さくする(圧縮)ようなものです。
4. tar.gzファイルを作成する方法
Linuxでtar.gzファイルを作成するには、tarコマンドを使います。基本的な書き方は以下の通りです。
tar -czf アーカイブ名.tar.gz 対象ファイルやディレクトリ
ここで使われているオプションの意味を説明します。
-c:新しいアーカイブを作成する(create)-z:gzipで圧縮する-f:ファイル名を指定する(file)
実際の例を見てみましょう。Documentsフォルダをまとめてbackup.tar.gzという名前で保存する場合は、以下のようになります。
tar -czf backup.tar.gz Documents
tar: Removing leading `/' from member names
このコマンドを実行すると、Documentsフォルダの中身がすべて一つのbackup.tar.gzファイルにまとめられます。
5. tar.gzファイルを解凍する方法
ダウンロードしたtar.gzファイルを展開して使うには、解凍(展開)する必要があります。解凍もtarコマンドで行います。
tar -xzf ファイル名.tar.gz
オプションの意味は以下の通りです。
-x:アーカイブを展開する(extract)-z:gzipで圧縮されたファイルを扱う-f:ファイル名を指定する
たとえば、software.tar.gzというファイルを解凍するには、以下のようにします。
tar -xzf software.tar.gz
software/
software/readme.txt
software/install.sh
このコマンドを実行すると、現在いるディレクトリにsoftwareというフォルダが作られ、その中にファイルが展開されます。
6. tar.gzの中身を確認する方法
解凍する前に、tar.gzファイルの中に何が入っているか確認したいことがあります。そんなときは-tオプションを使います。
tar -tzf backup.tar.gz
Documents/
Documents/memo.txt
Documents/report.pdf
Documents/images/
Documents/images/photo1.jpg
-tオプションは「list(一覧表示)」を意味します。これを使えば、実際に解凍することなく、アーカイブの中身を確認できます。大きなファイルを扱うときや、必要なファイルが含まれているか確認したいときに便利です。
7. よく使うオプションの組み合わせ
tarコマンドには、便利なオプションがたくさんあります。実務でよく使われる組み合わせを紹介します。
詳細表示しながら圧縮する
-vオプション(verbose)を追加すると、処理中のファイル名が表示されます。
tar -czvf archive.tar.gz myfiles/
myfiles/
myfiles/file1.txt
myfiles/file2.txt
myfiles/subfolder/
myfiles/subfolder/file3.txt
特定のディレクトリに解凍する
-Cオプションを使うと、解凍先のディレクトリを指定できます。
tar -xzf data.tar.gz -C /tmp/
/tmp/data/
/tmp/data/file.txt
このコマンドでは、data.tar.gzを/tmp/ディレクトリに解凍しています。
8. tar.gzと他の圧縮形式の違い
Linuxにはtar.gz以外にも、いくつかの圧縮形式があります。それぞれの特徴を理解しておくと便利です。
tar.bz2(タール・ビーズィートゥー)
bzip2という圧縮方式を使ったものです。gzipよりも圧縮率が高く、ファイルサイズをより小さくできますが、圧縮と解凍に時間がかかります。作成するときは-jオプションを使います。
tar.xz(タール・エックスゼット)
xzという比較的新しい圧縮方式です。bzip2よりもさらに高い圧縮率を実現できますが、処理に必要なメモリが多く、時間もかかります。作成するときは-Jオプションを使います。
zip
WindowsやMacでもよく使われる形式です。Linuxではzipとunzipという別のコマンドで扱います。クロスプラットフォームでファイルをやり取りするときに便利です。
一般的には、Linuxのソフトウェア配布ではtar.gzが最も広く使われています。圧縮率と処理速度のバランスが良いためです。
9. tar.gzを使う場面と注意点
tar.gzは、以下のような場面でよく使われます。
ソフトウェアの配布
Linuxのオープンソースソフトウェアは、ソースコードをtar.gz形式で配布することが一般的です。GitHubなどからダウンロードするファイルも、この形式であることが多いです。
バックアップ
複数のファイルやディレクトリ構造をそのまま保存したいときに使います。ファイルのパーミッション(権限)やタイムスタンプ(更新日時)も保持されるため、システムのバックアップに適しています。
ファイルの転送
複数のファイルを一つにまとめることで、ネットワーク経由での転送が効率的になります。メールに添付するときなども便利です。
注意点として、tar.gzファイルを扱うときは、解凍先のディスクスペースを確認しておきましょう。圧縮されているため、解凍すると元のサイズに戻ります。また、信頼できないソースからダウンロードしたファイルは、解凍前にウイルスチェックを行うことをお勧めします。
10. 実践的な使用例
最後に、実際の作業でよく使う実践的な例をいくつか紹介します。
ホームディレクトリのバックアップ
自分のホームディレクトリをバックアップする場合は、以下のようにします。
tar -czf home_backup_$(date +%Y%m%d).tar.gz ~
tar: Removing leading `/' from member names
このコマンドでは、$(date +%Y%m%d)を使って日付をファイル名に含めています。たとえば、2026年1月9日に実行するとhome_backup_20260109.tar.gzというファイルが作られます。
特定のファイルを除外して圧縮
大きなログファイルやキャッシュファイルを除外したいときは、--excludeオプションを使います。
tar -czf project.tar.gz --exclude='*.log' --exclude='node_modules' myproject/
myproject/
myproject/src/
myproject/src/main.js
このコマンドでは、.logで終わるファイルとnode_modulesディレクトリを除外して圧縮しています。
リモートサーバーから直接解凍
サーバー管理者の場合、リモートのファイルをダウンロードしながら解凍することもできます。
ssh user@server "cat /backup/data.tar.gz" | tar -xz
data/
data/file1.txt
data/file2.txt
このように、tar.gzは単なる圧縮ファイルではなく、Linuxシステム管理の重要なツールとして幅広く活用されています。基本的な使い方を覚えておけば、日常的な作業が格段に効率的になるでしょう。