「tar.gzってよく見るけど、普通のzipと何が違うの?」
WindowsやMacを使ってきた人がLinuxを学び始めたとき、「アーカイブ・圧縮」の扱いで必ずと言っていいほど戸惑います。
Windowsのように右クリックで「ZIPに圧縮」とはいかず、コマンドを打つ必要があるうえに、オプションの種類が多くて何が何だかわからなくなってしまうのです。
この記事では、Linux初心者が最初に覚えるべきtarコマンドの使い方を、「なぜLinuxはtarなのか」という疑問への答えから始めて、実際にファイルをまとめて圧縮・解凍するまでの手順をわかりやすく解説します。
「とりあえずこれだけ覚えれば実務で困らない」というコマンドのセットも紹介しますので、ぜひ手を動かしながら読んでみてください。
この記事のポイント
・Linuxでは tar でまとめてから gzip で圧縮するのが標準
・tar -czvf archive.tar.gz 対象 でまとめて圧縮できる
・tar -xzvf archive.tar.gz でカレントに解凍できる
・f オプションはファイル名の直前に書くルールがある
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜLinuxでは「tar.gz」が使われるのか
Windowsを使っていると、ファイルを圧縮するときは自然に「.zip形式」を選びます。では、なぜLinuxでは「.tar.gz」という形式がよく使われるのでしょうか。
これを理解するには、「まとめる」と「圧縮する」が別々の作業であることを知っておく必要があります。
1. tarは「まとめる」だけのツール
tarは、複数のファイルやディレクトリを1つのファイルにまとめるためのコマンドです。正式名称は「Tape ARchive」で、もともとはテープメディアへのバックアップ用に開発されました。
tarを使っただけでは、ファイルサイズは小さくなりません。単純にひとつにまとめるだけです。
2. gzipで「圧縮する」
まとめたtarファイルをさらに小さくするために、gzip(または bzip2・xz)で圧縮します。この組み合わせが「.tar.gz(または.tgz)」という形式です。
Windowsのzipは「まとめる+圧縮」を一度にやってくれますが、Linuxはこれを段階的に行う設計思想を持っています。
これにより、「まとめるだけ(バックアップ)」「圧縮するだけ(転送用に軽量化)」という使い分けができます。
3. 3つの形式の使い分け
| 形式 | 拡張子 | 特徴 | よく使う場面 |
|---|---|---|---|
| gzip | .tar.gz / .tgz | 速い・互換性が高い | 日常的な圧縮・転送 |
| bzip2 | .tar.bz2 | 圧縮率がやや高い・遅い | ストレージ節約が重要な場面 |
| xz | .tar.xz | 最高圧縮率・かなり遅い | 配布パッケージ等 |
tarコマンドの基本的な使い方
実際に手を動かしながら覚えていきましょう。以下の例では、Ubuntu 24.04 LTSで動作確認しています。Rocky Linux / RHEL 9でも同様に使えます。
1. ファイルをまとめて圧縮する(最重要)
最も使う操作です。ディレクトリや複数ファイルをひとまとめにして圧縮します。# ディレクトリをまとめて.tar.gzに圧縮する tar -czvf archive.tar.gz /path/to/directory/ # 複数ファイルをまとめて圧縮する tar -czvf archive.tar.gz file1.txt file2.txt file3.txt
・-c:アーカイブを作成(create)
・-z:gzipで圧縮(.tar.gzを作る場合に必要)
・-v:詳細表示(verbose)。処理中のファイル名を表示する
・-f:ファイル名を指定(file)。このオプションの直後にファイル名を書くことがルール
実際にコマンドを実行すると、以下のような出力が得られます。
$ tar -czvf backup.tar.gz /home/tomohiro/documents/ /home/tomohiro/documents/ /home/tomohiro/documents/report.txt /home/tomohiro/documents/data.csv /home/tomohiro/documents/images/ /home/tomohiro/documents/images/photo01.jpg
2. 圧縮ファイルを解凍する
受け取ったファイルや、バックアップから復元するときに使います。# カレントディレクトリに解凍する tar -xzvf archive.tar.gz # 解凍先のディレクトリを指定する tar -xzvf archive.tar.gz -C /tmp/
・-C:解凍先のディレクトリを指定する(change directory)
解凍先を指定しない場合は、コマンドを実行したディレクトリに展開されます。
3. アーカイブの中身を確認する(解凍せずに)
ファイルを解凍する前に「何が入っているか」を確認したいときに使います。# アーカイブの中身を一覧表示する(解凍しない) tar -tzvf archive.tar.gz
これを使うと、解凍前に「このtarファイルには何が入っているか」を確認できます。
初心者がよくはまるエラーと対処法
tarコマンドを使い始めた人が必ずといっていいほど直面するエラーを紹介します。【エラー1】「f オプションのあとにファイル名がない」
最も多いミスがこれです。# NG例:-fzvfのように並べると動かない tar -czfv backup.tar.gz /home/tomohiro/ # エラーの例 tar: backup.tar.gz: Cannot stat: No such file or directory tar: /home/tomohiro/: Cannot stat: No such file or directory # OK例:-f の直後にファイル名 tar -czvf backup.tar.gz /home/tomohiro/
`tar -czvf` という順番を丸ごと覚えてしまうのが早道です。
【エラー2】解凍したら大量のファイルがカレントに散らばった
解凍先のディレクトリを作らずに展開すると、ファイルが全部カレントに広がってしまいます。# 解凍前に中身を確認する tar -tzvf archive.tar.gz # 解凍先を事前に作っておく mkdir /tmp/extracted tar -xzvf archive.tar.gz -C /tmp/extracted/
【エラー3】「Permission denied」で解凍できない
指定した解凍先ディレクトリに書き込み権限がない場合に発生します。# エラーの例 tar: /var/backup/: Cannot open: Permission denied # 対処1:書き込みできる場所に解凍する tar -xzvf archive.tar.gz -C /home/tomohiro/ # 対処2:sudo を使う(注意して使うこと) sudo tar -xzvf archive.tar.gz -C /var/backup/
実務でよく使う応用パターン
1. バックアップのファイル名に日付を入れる
定期バックアップでよく使われる方法です。# ファイル名に今日の日付を入れてバックアップ tar -czvf backup_$(date +%Y%m%d).tar.gz /home/tomohiro/ # 例:2026年4月30日に実行すると以下のファイルが生成される # backup_20260430.tar.gz
2. 特定のファイルやディレクトリを除外する
ログファイルや一時ファイルをバックアップ対象から外したいときに使います。# /var/log/ を除外してバックアップ tar -czvf backup.tar.gz /var/ --exclude='/var/log/' # 複数のファイルや拡張子を除外する tar -czvf backup.tar.gz /home/tomohiro/ --exclude='*.log' --exclude='*.tmp'
3. bzip2形式で圧縮する(.tar.bz2)
gzipより圧縮率を高めたい場合に使います。-z の代わりに -j を指定します。# bzip2で圧縮する tar -cjvf archive.tar.bz2 /path/to/directory/ # bzip2アーカイブを解凍する tar -xjvf archive.tar.bz2
4. 圧縮せずにまとめるだけ(バックアップ目的)
圧縮処理を省いて速度を優先したい場合や、すでに圧縮済みのファイルをまとめる場合に使います。# 圧縮なし(-z / -j なし)でまとめるだけ tar -cvf archive.tar /path/to/directory/ # 解凍する場合 tar -xvf archive.tar
本記事のまとめ
Linuxのアーカイブ・圧縮の基本を整理しておきます。| やりたいこと | コマンド |
|---|---|
| ディレクトリを.tar.gzに圧縮 | tar -czvf archive.tar.gz /path/to/dir/ |
| .tar.gzを解凍する | tar -xzvf archive.tar.gz |
| 解凍先ディレクトリを指定 | tar -xzvf archive.tar.gz -C /tmp/ |
| アーカイブの中身を確認(解凍なし) | tar -tzvf archive.tar.gz |
| bzip2形式で圧縮 | tar -cjvf archive.tar.bz2 /path/to/dir/ |
| 特定ファイルを除外して圧縮 | tar -czvf archive.tar.gz /path/ --exclude='*.log' |
| 日付入りファイル名でバックアップ | tar -czvf backup_$(date +%Y%m%d).tar.gz /path/ |
次のステップとして、rsyncコマンドを使ったリモートバックアップや、cronによる自動バックアップの設定に進むと、より実務的なスキルが身につきます。
Linuxをもっと深く学びたい方へ
この記事はLinux入門シリーズの一部です。tarを使いこなした後は、以下の記事も合わせて読むと理解が深まります。・ファイル検索:findコマンドでファイルを検索する方法
・文字列検索:grepコマンドで文字列を検索する方法
・ファイル同期・バックアップ:rsyncコマンドでファイルを同期・転送する方法
・定期実行の設定:crontabコマンドの設定と書き方
・ネットワーク確認:ssコマンドでソケット情報を確認する方法
・シェルスクリプト引数処理:getoptsコマンドでbashスクリプトの引数を処理する方法
・ストレージ管理:blkidコマンドでブロックデバイスのUUIDとラベルを確認する方法
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンド学習の先にある「サーバーをゼロから組み立てる力」を、初心者が迷わない順序で学べる一冊です。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Linuxのman・helpコマンド入門|初心者がコマンドの使い方を自分で調べる方法
- 前のページへ:Linuxのファイル検索入門|findコマンドで目的のファイルを素早く見つける方法
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます