この記事では 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 |
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) | 対象ファイル名を後に続ける |
-z | gzip圧縮対応 | .tar.gz に対応 |
-j | bzip2圧縮対応 | .tar.bz2 に対応 |
-J | xz圧縮対応 | .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.gz | gzip | -czvf | 速い | 中(★★★) | 一般的な配布・転送。最もよく使われる |
.tar.bz2 | bzip2 | -cjvf | やや遅い | 高(★★★★) | 容量節約が優先のテキストファイル |
.tar.xz | xz | -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コマンドはオプションの組み合わせによって多彩な使い方ができますが、基本的なオプションだけを覚えておけば、ほとんどの用途に対応できます。
基本オプション一覧
| オプション | 意味 | よく使う場面 | 覚え方 |
|---|---|---|---|
-c | create(作成) | アーカイブを作る | create = 作成 |
-x | extract(展開) | アーカイブを展開 | xtract = 取り出す |
-v | verbose(詳細表示) | 処理中のファイルを見る | visible(見える) |
-f | file(ファイル指定) | 出力ファイル名の指定 | file = ファイル名を指定 |
-z | gzip圧縮 | .tar.gz を扱う | zipの z(gzip) |
-j | bzip2圧縮 | .tar.bz2 を扱う | j = bjip2(語呂) |
-J | xz圧縮 | .tar.xz を扱う | Just xz(Jで覚える) |
-t | list(中身を表示) | 展開せずに確認 | table(一覧表示) |
-C | Change 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 で標準的な形式で、アーカイブと圧縮を同時に行います。
GNU tar と BSD tar(macOS)で一部オプションの差分があります。また - を省略したり、順序が違うとエラーになる場合があります。tar --version で種類を確認してみましょう。
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コマンドは、慣れれば非常に強力で応用も効くツールです。まずは基本を押さえて、少したづ便利な使い方を身につけていきましょう。

コメント