tarコマンドの使い方|解凍・圧縮オプション一覧を早見表で確認

コマンドリファレンス

tar コマンドのオプション一覧と解凍・圧縮のやり方を、目的別にコピペで使える形でまとめました。「圧縮したい(tar czf)」「解凍したい(tar xzf)」「中身を確認したい(tar tzf)」をまず一覧表で確認できます。「解凍でエラーが出る」場合の対処法も後半でまとめています。

tar.gz / tar.bz2 / tar.xz の違いや、よく使うオプションの意味まで、この記事1本で完結します。

用途コマンド
圧縮する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

Windows・macOSを含めたGUIツールでの解凍手順はtar.gz/tgzの解凍方法|Windows・Mac・Linuxをコマンド1つで開くやり方、バックアップ運用の実践例はtar.gzで丸ごと保存|バックアップ圧縮の実用レシピと注意点で個別に解説しています。tarコマンド自体の基本と用途をひと通り押さえたい場合は、このまま読み進めてください。

  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. zstd形式(.tar.zst)
    5. 圧縮形式の比較:速度・圧縮率・主な用途
    6. どの圧縮形式を選ぶべきか
    7. ファイル名を圧縮後に自動でつけたいとき
  4. Linux で tar 解凍する方法(tar xzf / xjf / xJf)
    1. 基本的な解凍コマンド
    2. 展開先のディレクトリを指定する
    3. 解凍せずに中身だけ確認する
    4. 一部のファイルだけ解凍する
    5. 配布物の余分な親ディレクトリを取り除く(–strip-components)
    6. 解凍での注意点
  5. よく使うオプション一覧と覚え方
    1. 基本オプション一覧
    2. オプションの覚え方のコツ
    3. 例:よくある組み合わせパターン
  6. 応用テクニック・実務で便利な使い方
    1. 特定のファイルやディレクトリを除外する(–exclude)
    2. SSH経由でリモートサーバーへ送る
    3. find コマンドと組み合わせて圧縮
    4. ファイル更新の差分だけアーカイブ(–update)
  7. tar コマンドでよくあるエラーと対処
    1. 権限エラーが出る
    2. 展開先を間違えてファイルが散らかる
    3. 既存ファイルを上書きしてしまう
    4. オプション違いで解凍できない
    5. GNU tar と BSD tar(macOS)の主な違い
  8. よくある質問(FAQ)
  9. tar コマンドと他の圧縮ツールとの違い(zip・7z・rar)
  10. まとめ|tarはこのパターンだけ覚えれば怖くない
    1. ✅ 圧縮はこの2つを使い分けるだけ
    2. ✅ 解凍はこの2つを使い分けるだけ
    3. ✅ よく使うオプションはこれだけ
  11. 参考
  12. 関連記事
  13. 関連記事

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で標準的

zip / unzip コマンドの具体的な使い方はzip / unzip コマンド|Linux での圧縮・解凍の使い方で解説しています。

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圧縮を有効にする
  • 高圧縮率かつ比較的新しい形式。ソースコード配布などで使われることが多い

zstd形式(.tar.zst)

# 圧縮
tar --zstd -cvf archive.tar.zst ディレクトリ名やファイル名

# 解凍
tar --zstd -xvf archive.tar.zst
  • --zstd:Facebook(Meta)製の圧縮アルゴリズムzstandardを使う。GNU tar 1.31以降で標準サポート
  • gzip並みの圧縮速度でxzに迫る圧縮率が出せるため、CI/CDのキャッシュ保存やコンテナイメージなど「速さと圧縮率の両立」が必要な用途で採用が広がっている
  • 古いtar(GNU tar 1.30以前やmacOS標準のBSD tar)では--zstdが使えない場合があるため、tar --versionで対応状況を確認するかzstd -d archive.tar.zst -c | tar -xf -のようにzstdコマンドと組み合わせる

圧縮形式の比較:速度・圧縮率・主な用途

拡張子圧縮形式オプション圧縮速度圧縮率の目安主な用途
.tarなし-cvf最速なし圧縮不要な局所バックアップ
.tar.gzgzip-czvf速い中(★★★)一般的な配布・転送。最もよく使われる
.tar.bz2bzip2-cjvfやや遅い高(★★★★)容量節約が優先のテキストファイル
.tar.xzxz-cJvf遅い最高(★★★★★)ソースコード配布・長期保存
.tar.zstzstd–zstd -cvf速い高(★★★★)CI/CDキャッシュ・コンテナイメージなど速度と圧縮率の両立

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

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

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

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

Linux で tar 解凍する方法(tar xzf / xjf / xJf)

Linux で tar.gz を解凍(展開)するには tar -xzf コマンドを使います。-x は「展開(extract)」、-z は「gzip 圧縮の処理」、-f は「ファイル指定」を意味します。拡張子に応じてオプションを切り替えるのがポイントです。

拡張子解凍コマンドポイント
.tartar -xvf archive.tar圧縮なし・展開のみ
.tar.gz / .tgztar -xzf archive.tar.gz最もよく使う形式
.tar.bz2tar -xjf archive.tar.bz2高圧縮率の bzip2
.tar.xztar -xJf archive.tar.xz最高圧縮の xz

基本的な解凍コマンド

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

# .tar.gz の展開(gzip)— Linux で最も一般的な解凍
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

配布物の余分な親ディレクトリを取り除く(–strip-components)

GitHubのソースアーカイブなどは、展開すると プロジェクト名-v1.2.3/ のような1階層のディレクトリで包まれていることがよくあります。この階層を取り除いて中身だけを展開したいときは --strip-components を使います。

# 先頭の1階層(プロジェクト名-v1.2.3/ など)を取り除いて展開
tar -xzf archive.tar.gz --strip-components=1 -C ./project

数字は取り除きたい階層の深さです。指定した階層数より浅いパスのファイルは展開されないため、事前に tar -tzf で構造を確認してから使うと安全です。

解凍での注意点

  • 相対パスで展開されるので、現在の作業ディレクトリに注意
  • アーカイブによっては展開時に大量のファイルが展開されることがあるため、事前確認(-t)がおすすめです
  • 既存の同名ファイルは基本的に上書きされる。上書きしたくない場合は -k--keep-old-files)を使う
  • 一般ユーザーで展開すると所有者は実行ユーザーになる。root権限での復元やバックアップ展開でパーミッション・所有者を維持したい場合は -p--preserve-permissions)を付ける

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

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 = 古いファイルを残す
-p--preserve-permissions展開時にパーミッションや所有者情報を保持するバックアップの復元など権限を維持したいときpreserve permissions = 権限を保持
--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"

除外条件は複数指定できます。開発プロジェクトを配布用にアーカイブする際、node_modules.git のような不要なディレクトリをまとめて除外すると軽量化できます。

tar -czf project.tar.gz \
  --exclude="./node_modules" \
  --exclude="./.git" \
  ./project/

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

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

SSHの接続方法や認証設定についてはssh コマンド|ssh接続の基本から主要オプションまで解説も参考にしてください。

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

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

findコマンドの詳細な絞り込み条件(日時・サイズ・拡張子など)についてはfind コマンド / locate|Linuxでファイルを検索する方法をあわせて確認してください。

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

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

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

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

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

権限エラーが出る

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

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

まず展開先に書き込み権限があるか確認しましょう。必要に応じて、権限のあるディレクトリへ展開するか、管理者権限で実行します。Linuxのファイル権限の仕組みや chmodchown の使い方は【初心者向け】Linux 権限管理を徹底解説!chmod と chown の使い方をわかりやすくで確認できます。

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

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 の種類を確認しましょう。

GNU tar と BSD tar(macOS)の主な違い

Linux の多くのディストリビューションは GNU tar を採用していますが、macOS 標準の tar は BSD tar です。同じオプションでも挙動が異なる場合があるので注意しましょう。

項目GNU tar(多くのLinux)BSD tar(macOS標準)
--versionでの確認tar (GNU tar) x.xと表示bsdtar x.xと表示
--excludeの書式比較的柔軟なパターン指定が可能一部のワイルドカード指定で挙動が異なる
長いオプション--strip-componentsなど幅広くサポートサポートされないオプションがある
Homebrewでの対応brew install gnu-tarでGNU tarを追加導入可能

macOSでLinuxサーバーと同じスクリプトを使い回したい場合は、Homebrewでgnu-tarを導入しgtarコマンドとして使うと差異を減らせます。

よくある質問(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 でファイル構成や日時、サイズを事前にチェックできます。

大きなファイルを圧縮するとき進捗(プログレスバー)を見る方法は?

pv コマンドと組み合わせると進捗を表示できます。例: tar -cf - ディレクトリ | pv -s $(du -sb ディレクトリ | awk '{print $1}') | gzip > archive.tar.gzpv が未導入の場合は apt install pvbrew install pv で追加します。

-z-j を省略しても解凍できますか?

新しめのGNU tarは拡張子から圧縮形式を自動判定するため、tar -xf archive.tar.gz のように圧縮オプションを省略しても解凍できることが多いです。ただしBSD tar(macOS標準)や古いtarでは自動判定されない場合があるため、確実に動かしたいスクリプトでは -z / -j / -J を明示するのが安全です。

tar コマンドと他の圧縮ツールとの違い(zip・7z・rar)

tar は「まとめる+圧縮する」を分業する UNIX 系の標準ツールですが、実務では zip7zrar と比較検討する場面もあります。用途に応じて選び分けましょう。

形式主な環境圧縮率特徴
tar.gz / tar.xzLinux / macOS中〜最高権限・シンボリックリンクを保持しやすい。サーバー間転送の定番
zipWindows / 全般中程度OS標準で開けることが多く、共有相手を選ばない
7zWindows中心高い圧縮率は高いが専用ツールが必要な場合がある
rarWindows中心高い圧縮には有償ツールが必要(展開のみ無料ツールあり)

Linux サーバー同士やバックアップ用途では tar.gz / tar.xz、Windows ユーザーとファイルをやり取りするなら zip が無難です。

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

コメント