【即コピペOK】tarコマンドの圧縮・解凍まとめ!オプションの意味もわかりやすく解説

アーカイブ作成・展開
スポンサーリンク

LinuxやmacOSのコマンドライン作業で、ファイルやディレクトリをまとめて扱いたいときによく使われるのが tar コマンドです。
特に「圧縮したい」「解凍したい」という場面で使われますが、オプションが多くて覚えにくく、使うたびに検索してしまう人も多いはずです。

この記事では、そんな tar コマンドの圧縮・解凍方法を最初にズバリ提示し、そのあとで詳しく解説を進めていきます。
「とにかく早く使いたい人」も、「じっくり理解したい人」も、どちらにも役立つように構成しました。

必要なときにすぐ使えるよう、ぜひブックマークしてご活用ください。

  1. tarコマンドの圧縮・解凍、まずはこれだけ見ればOK!
    1. 🔽 圧縮(アーカイブ)のコマンド
    2. 🔼 解凍(展開)のコマンド
    3. 💡 オプションの意味(よく使うもの)
  2. tarとは?アーカイブと圧縮の違い
    1. アーカイブ = まとめるだけ
    2. 圧縮 = 容量を小さくすること
    3. .zipとの違いは?
    4. まとめ
  3. 圧縮:よく使う書き方と拡張子の違い
    1. gzip形式(.tar.gz)
    2. bzip2形式(.tar.bz2)
    3. xz形式(.tar.xz)
    4. 拡張子ごとの違いまとめ
    5. ファイル名を圧縮後に自動でつけたいとき
  4. 解凍:展開の方法と中身確認のコマンド
    1. 基本的な解凍コマンド
    2. 展開先のディレクトリを指定する
    3. 解凍せずに中身だけ確認する
    4. 一部のファイルだけ解凍する
    5. 解凍での注意点
  5. よく使うオプション一覧と覚え方
    1. 基本オプション一覧
    2. オプションの覚え方のコツ
    3. 例:よくある組み合わせパターン
  6. 応用テクニック・実務で便利な使い方
    1. 特定のファイルやディレクトリを除外する(–exclude)
    2. 展開先を任意のディレクトリに変更する(-C)
    3. SSH経由でリモートサーバーへ送る
    4. find コマンドと組み合わせて圧縮
    5. ファイル更新の差分だけアーカイブ(–update)
  7. よくある質問(FAQ)
    1. Q. -cvf と -czvf の違いは何ですか?
    2. Q. .tar.gzと.zipはどう違うの?
    3. Q. tarコマンドが「invalid option」と言われるのはなぜ?
    4. Q. Windowsで.tar.gzファイルを解凍するには?
    5. Q. 圧縮ファイルの中に何が入っているか確認する方法は?
  8. まとめ|tarはこのパターンだけ覚えれば怖くない
    1. ✅ 圧縮はこの2つを使い分けるだけ
    2. ✅ 解凍はこの2つを使い分けるだけ
    3. ✅ よく使うオプションはこれだけ
  9. 関連記事

tarコマンドの圧縮・解凍、まずはこれだけ見ればOK!

まずは tar コマンドを使った「圧縮」と「解凍」の基本的なコマンドだけを、用途別に一覧で紹介します。これさえ覚えておけば、日常的な tar の利用はほぼカバーできます。

🔽 圧縮(アーカイブ)のコマンド

# アーカイブ(圧縮なし)を作成
tar -cvf archive.tar ディレクトリ名やファイル名

# gzip形式で圧縮(.tar.gz)
tar -czvf archive.tar.gz ディレクトリ名やファイル名

# bzip2形式で圧縮(.tar.bz2)
tar -cjvf archive.tar.bz2 ディレクトリ名やファイル名

# xz形式で圧縮(.tar.xz)
tar -cJvf archive.tar.xz ディレクトリ名やファイル名

🔼 解凍(展開)のコマンド

# アーカイブ(.tar)を展開
tar -xvf archive.tar

# gzip形式(.tar.gz)を展開
tar -xzvf archive.tar.gz

# bzip2形式(.tar.bz2)を展開
tar -xjvf archive.tar.bz2

# xz形式(.tar.xz)を展開
tar -xJvf archive.tar.xz

💡 オプションの意味(よく使うもの)

オプション意味備考
-cアーカイブ作成(create)圧縮時に使用
-x展開(extract)解凍時に使用
-v詳細表示(verbose)進捗が見えるので安心
-fファイル指定(file)対象ファイル名を後に続ける
-zgzip圧縮対応.tar.gz に対応
-jbzip2圧縮対応.tar.bz2 に対応
-Jxz圧縮対応.tar.xz に対応

tarとは?アーカイブと圧縮の違い

tar は「Tape Archive(テープ・アーカイブ)」の略で、もともとは複数のファイルを1つのテープにまとめて保存するために使われていたコマンドです。現在でも、LinuxやmacOSのコマンドラインでよく利用されており、複数ファイルを1つにまとめるための基本的なツールとして重宝されています。

アーカイブ = まとめるだけ

tar コマンドの本質は「まとめること」です。
たとえば以下のようにすると、複数のファイルを1つの .tar ファイルにまとめることができます。

tar -cvf backup.tar ファイルA ファイルB ディレクトリC

この段階では「圧縮」はされていません。中身のサイズは変わらず、単に1つにくっついただけです。

圧縮 = 容量を小さくすること

圧縮は .tar ファイルに対して別途行う処理です。
tar コマンドは -z(gzip)、-j(bzip2)、-J(xz)などのオプションを組み合わせることで、アーカイブと圧縮を同時に実行できます。

tar -czvf backup.tar.gz ファイルやディレクトリ

このように圧縮処理を加えることで、ディスク容量を節約したり、転送速度を上げたりできます。

.zipとの違いは?

比較項目tar + 圧縮zip
処理アーカイブ+圧縮を分けて行うアーカイブと圧縮を同時に行う
拡張子.tar, .tar.gz, etc.zip
一部展開可能可能
圧縮率圧縮形式によって異なる通常は中程度
対応環境UNIX系に標準的Windowsで標準的

まとめ

  • tarは「まとめる」コマンド、圧縮とは別物
  • 実用的には「まとめて圧縮」「まとめて解凍」で使うのが一般的
  • .zipと異なり、形式を自由に選べるのがメリット

圧縮:よく使う書き方と拡張子の違い

tarコマンドでは、アーカイブだけでなく、圧縮形式を指定することで .tar.gz.tar.bz2 などの形式で出力できます。用途に応じて圧縮形式を選び、適切なオプションを使うのがポイントです。

gzip形式(.tar.gz)

tar -czvf archive.tar.gz ディレクトリ名やファイル名
  • -z:gzip圧縮を有効にする
  • 最も一般的な形式で、展開も速く広く使われている

bzip2形式(.tar.bz2)

tar -cjvf archive.tar.bz2 ディレクトリ名やファイル名
  • -j:bzip2圧縮を有効にする
  • gzipよりも高い圧縮率だが処理時間はやや長め

xz形式(.tar.xz)

tar -cJvf archive.tar.xz ディレクトリ名やファイル名
  • -J:xz圧縮を有効にする
  • 高圧縮率かつ比較的新しい形式。ソースコード配布などで使われることが多い

拡張子ごとの違いまとめ

拡張子圧縮形式オプション特徴
.tarなし-cvfアーカイブのみ、圧縮なし
.tar.gzgzip-czvf汎用性が高く、展開が速い
.tar.bz2bzip2-cjvf圧縮率が高いが少し遅い
.tar.xzxz-cJvf圧縮率が非常に高い

ファイル名を圧縮後に自動でつけたいとき

ファイル名を自動的に出力するには、シェルの変数展開などと組み合わせると便利です。

filename=backup
tar -czvf ${filename}_$(date +%Y%m%d).tar.gz 対象フォルダ

解凍:展開の方法と中身確認のコマンド

圧縮された .tar ファイルを解凍する際にも、ファイルの形式に応じたオプションの使い分けが重要です。tarコマンドの解凍では -x(extract)を使い、拡張子に応じて -z, -j, -J を組み合わせます。

基本的な解凍コマンド

# .tar ファイルの展開(圧縮なし)
tar -xvf archive.tar

# .tar.gz の展開(gzip)
tar -xzvf archive.tar.gz

# .tar.bz2 の展開(bzip2)
tar -xjvf archive.tar.bz2

# .tar.xz の展開(xz)
tar -xJvf archive.tar.xz

展開先のディレクトリを指定する

-C オプションを使えば、解凍先を任意のディレクトリに変更できます。

tar -xzvf archive.tar.gz -C /path/to/output

/path/to/output ディレクトリは事前に作成しておく必要があります。

解凍せずに中身だけ確認する

解凍前にファイルの構成を確認したいときは -t(list)オプションを使います。

tar -tvf archive.tar
tar -tzvf archive.tar.gz
  • ファイル名、パーミッション、更新日時などが一覧表示されます

一部のファイルだけ解凍する

対象のファイル名をコマンドの末尾に指定すると、特定ファイルのみを抽出できます。

tar -xzvf archive.tar.gz path/to/file.txt
  • パスはアーカイブ内の相対パスと一致している必要があります

解凍での注意点

  • 相対パスで展開されるので、現在の作業ディレクトリに注意
  • アーカイブによっては展開時に大量のファイルが展開されることがあるため、事前確認(-t)がおすすめです

よく使うオプション一覧と覚え方

tarコマンドはオプションの組み合わせによって多彩な使い方ができますが、基本的なオプションだけを覚えておけば、ほとんどの用途に対応できます。ここでは、よく使うオプションとその意味、覚えやすい語呂を紹介します。

基本オプション一覧

オプション意味よく使う場面覚え方
-ccreate(作成)アーカイブを作るcreate = 作成
-xextract(展開)アーカイブを展開xtract = 取り出す
-vverbose(詳細表示)処理中のファイルを見るvisible(見える)
-ffile(ファイル指定)出力ファイル名の指定file = ファイル名を指定
-zgzip圧縮.tar.gz を扱うzipの z(gzip)
-jbzip2圧縮.tar.bz2 を扱うj = bjip2(語呂)
-Jxz圧縮.tar.xz を扱うJust xz(Jで覚える)
-tlist(中身を表示)展開せずに確認table(一覧表示)
-CChange directory展開先の指定Change directory

オプションの覚え方のコツ

  • 「c / x / t」:基本操作のモードを決める(作成・展開・一覧)
  • 「v / f」:補助的に常につける(出力確認・ファイル指定)
  • 「z / j / J」:圧縮形式を選ぶ(gzip / bzip2 / xz)
  • 順番は重要-cvf のように f の後ろにファイル名が必要

例:よくある組み合わせパターン

操作内容コマンド例コメント
アーカイブ作成tar -cvf backup.tar dir/圧縮なし
gzip圧縮tar -czvf backup.tar.gz dir/最も一般的な形式
展開tar -xvf backup.tar圧縮されていない場合
gzip展開tar -xzvf backup.tar.gz.tar.gzの展開
中身だけ確認tar -tvf backup.tar展開前にチェックできる
指定先に展開tar -xzvf backup.tar.gz -C output/特定ディレクトリに展開

オプションの意味と使い方を理解すれば、組み合わせるだけでtarの機能を自在に扱えるようになります。特に -cvf / -czvf / -xvf / -xzvf の4つの基本形は、繰り返し使って自然に覚えていきましょう。

応用テクニック・実務で便利な使い方

基本的な圧縮・解凍の使い方を覚えたら、次はtarコマンドをより柔軟に使いこなすための応用テクニックです。実務でも役立つ便利な使い方をいくつか紹介します。

特定のファイルやディレクトリを除外する(–exclude)

不要なファイルを除いてアーカイブを作りたい場合は --exclude オプションが便利です。

tar -czvf archive.tar.gz ディレクトリ名 --exclude="*.log"
  • .log ファイルを除外して圧縮
  • ワイルドカードも使えます

展開先を任意のディレクトリに変更する(-C)

ファイルを展開するディレクトリを指定することで、作業ディレクトリを汚さず整理できます。

tar -xzvf archive.tar.gz -C ./restore_folder
  • restore_folder が事前に存在している必要があります

SSH経由でリモートサーバーへ送る

ローカルで圧縮しつつ、リモートサーバーに直接転送したいときの一発コマンドです。

tar -czf - ディレクトリ名 | ssh user@remote "tar -xzf - -C /path/to/destination"
  • ネットワーク経由でそのまま展開可能
  • バックアップや移行時に便利です

find コマンドと組み合わせて圧縮

find で特定条件のファイルを選んで tar に渡すこともできます。

find ./logs -name "*.log" | tar -czvf logs.tar.gz -T -
  • -T - は標準入力を意味します
  • 大量のファイルの中から絞って圧縮可能

ファイル更新の差分だけアーカイブ(–update)

既存の .tar アーカイブに、新しい変更だけを追記したい場合に使います。

tar --update -f archive.tar 変更されたファイル
  • 差分バックアップ的な用途に便利

これらのテクニックを知っておくと、tarコマンドを単なる「圧縮・解凍ツール」ではなく、柔軟で高機能なファイル操作ツールとして使いこなせるようになります。実務でも非常に重宝されるので、ぜひ活用してみてください。

よくある質問(FAQ)

tarコマンドを使っていてつまずきやすいポイントや、検索されやすい疑問をQ&A形式でまとめました。初心者だけでなく、久しぶりに使う中級者にも役立つ内容です。


Q. -cvf と -czvf の違いは何ですか?

  • -cvf はアーカイブのみ(圧縮なし)
  • -czvf は gzip での圧縮付きアーカイブ
    gzip圧縮をする場合は z を忘れずに追加しましょう。

Q. .tar.gzと.zipはどう違うの?

項目.tar.gz.zip
処理の順番アーカイブ → 圧縮同時にアーカイブ+圧縮
柔軟性圧縮形式を選べて自由度が高い単体で完結しているが固定形式
よく使う場面UNIX/Linux系の環境Windowsでの配布・受け渡し

Q. tarコマンドが「invalid option」と言われるのはなぜ?

  • GNU tar 以外の環境(macOS など)ではオプションの挙動が異なることがあります
  • - を省略したり、順序が違うとエラーになる場合もあります
    例:xvf ではなく -xvf と書く必要があります

Q. Windowsで.tar.gzファイルを解凍するには?

  • Windows 11以降では標準で展開可能です
  • それ以前のバージョンでは「7-Zip」や「WinRAR」などのツールを使うと展開できます

Q. 圧縮ファイルの中に何が入っているか確認する方法は?

解凍せずに中身だけ確認するには -t オプションを使います。

tar -tvf archive.tar.gz

ファイル構成や日時、サイズを事前にチェックできるので、安全に作業したいときに便利です。


tarコマンドは小さなミスで動かないことも多いため、「なぜ失敗したか」を一つ一つ確認しながら使っていくことがポイントです。上記のような疑問を解消するだけでも、作業効率は大きく変わります。

まとめ|tarはこのパターンだけ覚えれば怖くない

tarコマンドはオプションが多くて難しく感じるかもしれませんが、実は基本の形だけを覚えれば、ほとんどの操作がスムーズにこなせます。


✅ 圧縮はこの2つを使い分けるだけ

# アーカイブのみ(圧縮なし)
tar -cvf archive.tar 対象

# gzip圧縮付き
tar -czvf archive.tar.gz 対象

✅ 解凍はこの2つを使い分けるだけ

# アーカイブのみを展開
tar -xvf archive.tar

# gzip圧縮を展開
tar -xzvf archive.tar.gz

✅ よく使うオプションはこれだけ

  • c:作成(create)
  • x:展開(extract)
  • v:中身を表示(verbose)
  • f:ファイル名を指定(file)
  • z:gzip圧縮対応(zipのz)

この組み合わせで 「作るなら -cvf / -czvf」「解凍なら -xvf / -xzvf」 を基本形として使えば、迷うことはほとんどありません。


tarコマンドは、慣れれば非常に強力で応用も効くツールです。
まずは基本を押さえて、少しずつ便利な使い方を身につけていきましょう。

ブックマークしておけば、いつでも「圧縮・解凍のレシピ帳」として活用できます。

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント