tarコマンド完全ガイド | 圧縮・解凍・オプション一覧【Linux/Mac】

コマンドリファレンス

この記事では tar コマンド の使い方を完全解説します。Linux・macOS での圧縮・解凍の基本から、オプション一覧・比較表、実務で使える応用テクニック、よくあるエラー対処まで網羅しました。

tar コマンドをすぐ使いたい人向けに、よく使う操作を先にまとめます。

用途コマンド
圧縮するtar -czf archive.tar.gz directory/
解凍するtar -xzf archive.tar.gz
中身を見るtar -tzf archive.tar.gz
展開先を変えるtar -xzf archive.tar.gz -C /path/to/destination
一部だけ取り出すtar -xzf archive.tar.gz path/in/archive/file.txt
  1. tar コマンドとは?アーカイブと圧縮を理解しよう
    1. アーカイブ = まとめるだけ
    2. 圧縮 = 容量を小さくすること
    3. .zipとの違いは?
  2. tarコマンドの圧縮・解凍、まずはこれだけ見ればOK!
    1. 🔽 圧縮(アーカイブ)のコマンド
    2. 🔼 解凍(展開)のコマンド
    3. 💡 オプションの意味(よく使うもの)
  3. tar コマンドで圧縮する方法 | 拡張子の違い
    1. gzip形式(.tar.gz)
    2. bzip2形式(.tar.bz2)
    3. xz形式(.tar.xz)
    4. 圧縮形式の比較:速度・圧縮率・主な用途
    5. どの圧縮形式を選ぶべきか
    6. ファイル名を圧縮後に自動でつけたいとき
  4. tar コマンドで解凍する方法 | 中身確認も
    1. 基本的な解凍コマンド
    2. 展開先のディレクトリを指定する
    3. 解凍せずに中身だけ確認する
    4. 一部のファイルだけ解凍する
    5. 解凍での注意点
  5. よく使うオプション一覧と覚え方
    1. 基本オプション一覧
    2. オプションの覚え方のコツ
    3. 例:よくある組み合わせパターン
  6. 応用テクニック・実務で便利な使い方
    1. 特定のファイルやディレクトリを除外する(–exclude)
    2. SSH経由でリモートサーバーへ送る
    3. find コマンドと組み合わせて圧縮
    4. ファイル更新の差分だけアーカイブ(–update)
  7. tar コマンドでよくあるエラーと対処
    1. 権限エラーが出る
    2. 展開先を間違えてファイルが散らかる
    3. 既存ファイルを上書きしてしまう
    4. オプション違いで解凍できない
  8. よくある質問(FAQ)
  9. まとめ|tarはこのパターンだけ覚えれば怖くない
    1. ✅ 圧縮はこの2つを使い分けるだけ
    2. ✅ 解凍はこの2つを使い分けるだけ
    3. ✅ よく使うオプションはこれだけ
  10. 関連記事
  11. 関連記事

tar コマンドとは?アーカイブと圧縮を理解しよう

tar コマンドは Linux・macOS で複数のファイルを1つにまとめ、必要に応じて圧縮するコマンドです。「Tape Archive」の略で、ファイルの バックアップ・配布・転送 に幅広く使われています。

tar コマンドの特徴は「まとめる(アーカイブ)」と「縮小する(圧縮)」を組み合わせて使える点です。圧縮形式も gzip / bzip2 / xz から選べるため、用途に応じた使い分けができます。

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

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コマンドの圧縮・解凍、まずはこれだけ見れば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コマンドでは、圧縮形式を指定することで .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遅い最高(★★★★★)ソースコード配布・長期保存

どの圧縮形式を選ぶべきか

  • 迷ったら .tar.gz:最も汎用的で、展開速度も速く、どの環境でも使える
  • 圧縮率を重視するなら .tar.xz:時間がかかるが最もサイズを小さくできる。ソースコード配布に多い
  • 速度を重視するなら .tar(圧縮なし):同じネットワーク内の移動など、処理速度を優先したい場合

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

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

tar コマンドで解凍する方法 | 中身確認も

圧縮された .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

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

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

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

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

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
--strip-components=1展開時に先頭のディレクトリ階層を取り除く配布物展開時に不要な親ディレクトリを外したいときstrip = はがす、components = パスの部品
-k--keep-old-files既存ファイルがある場合に上書きしない誤って既存ファイルを壊したくないときkeep old files = 古いファイルを残す
--exclude-from=file除外したいパターンをファイルから読み込むバックアップで除外対象が多いときexclude from file = 除外条件をファイルから読む
-T--files-from=file対象ファイル一覧をファイルから読み込む圧縮対象を一覧で管理したいときT = target list を渡すイメージ
--one-top-level展開時に1つのトップレベルディレクトリを作ってその中に展開する展開先にファイルが散らかるのを防ぎたいときone top level = いちばん上を1つにまとめる

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

  • 「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コマンドをより柔軟に使いこなすための応用テクニックです。

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

tar -czvf archive.tar.gz ディレクトリ名 --exclude="*.log"

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

tar -czf - ディレクトリ名 | ssh user@remote "tar -xzf - -C /path/to/destination"

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

find ./logs -name "*.log" | tar -czvf logs.tar.gz -T -

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

tar --update -f archive.tar 変更されたファイル

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

tar コマンドでよくあるエラーと対処

tar コマンドは便利ですが、オプションの違いや展開先の指定ミスで失敗しやすいコマンドでもあります。ここでは、よくあるエラーと原因、対処法をまとめます。

権限エラーが出る

展開先や圧縮対象のディレクトリに書き込み権限がないと、Permission denied のようなエラーが出ます。

tar -xzf archive.tar.gz -C /var/www/html

まず展開先に書き込み権限があるか確認しましょう。必要に応じて、権限のあるディレクトリへ展開するか、管理者権限で実行します。

展開先を間違えてファイルが散らかる

tar -xzf archive.tar.gz -C ./output

事前に展開先ディレクトリを作成し、-C オプションで明示すると安全です。受け取ったアーカイブを開くときは、まず -t で中身を確認してから展開すると事故を防げます。

既存ファイルを上書きしてしまう

tar -xzkf archive.tar.gz

上書きを避けたい場合は -k--keep-old-files)を使います。既存ファイルがある場合は上書きせず、そのファイルを残したまま処理できます。

オプション違いで解凍できない

# .tar.gz
tar -xzf archive.tar.gz

# .tar.bz2
tar -xjf archive.tar.bz2

# .tar.xz
tar -xJf archive.tar.xz

なお、GNU tar と BSD tar(macOS)で使えるオプションが一部異なります。見慣れないエラーが出たときは、圧縮形式とオプションの組み合わせ、使っている tar の種類を確認しましょう。

よくある質問(FAQ)

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

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

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

.tar.gz は UNIX/Linux 系でよく使われ、アーカイブ→圧縮の順で処理します。.zip は Windows で標準的な形式で、アーカイブと圧縮を同時に行います。

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

GNU tar と BSD tar(macOS)で一部オプションの差分があります。また - を省略したり、順序が違うとエラーになる場合があります。tar --version で種類を確認してみましょう。

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

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

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

解凍せずに中身だけ確認するには -t オプションを使います。tar -tvf archive.tar.gz でファイル構成や日時、サイズを事前にチェックできます。

まとめ|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玄をフォローする

コメント