Linuxを使っていると、複数のファイルをまとめて転送したい、バックアップを一つのファイルにまとめたい、サーバーからダウンロードしたtar.gzファイルを解凍したい——そういった場面が頻繁に訪れます。
そのときに使うのがtarコマンドです。Linuxに標準搭載されているアーカイブツールで、ファイルの圧縮・解凍・管理を一手に担う、システム管理・開発作業の基本コマンドのひとつです。しかし「オプションが多くて覚えられない」「tar.gzとtar.bz2の違いが分からない」「解凍したら意図しない場所にファイルが展開された」という声も多く聞かれます。
本記事では、tarの基本概念から圧縮・解凍の具体的なコマンド例、応用テクニック、よくある注意点まで、初心者の方でもすぐに実践できるよう順序立てて解説します。
tarとは

tarコマンドの基本概念
tarは「Tape ARchive」の略で、もともとはテープドライブへのバックアップのために開発されたコマンドです。現在はファイルやディレクトリをひとつのファイルにまとめる(アーカイブする)ツールとして広く使われています。
LinuxをはじめとするUNIX系OSに標準搭載されており、追加インストールなしに使用できます。
圧縮とアーカイブの違い
tarを正しく理解するうえで重要なのが、「アーカイブ」と「圧縮」の違いです。
| 概念 | 意味 | tarでの役割 |
|---|---|---|
| アーカイブ | 複数のファイルを1つにまとめること | tarコマンド自体の機能 |
| 圧縮 | データを小さくすること | gzipやbzip2などと組み合わせて実現 |
tarコマンド単体はアーカイブ(まとめる)機能を持ち、圧縮はgzipやbzip2などの別ツールと組み合わせて行います。-zオプションでgzip、-jオプションでbzip2と連携できるため、実務では圧縮とアーカイブを同時に行うのが一般的です。
tarを使うメリット
複数ファイルやディレクトリをまとめられる
数百・数千のファイルが入ったディレクトリも、tarコマンド一行でひとつのファイルにまとめられます。ディレクトリ構造(階層)もそのまま保持されるため、展開後に元の状態を再現できます。
転送やバックアップに便利
ファイルをひとつにまとめることで、SCP・FTP・メールなどでの転送が格段に楽になります。また、圧縮を組み合わせることでファイルサイズを削減でき、ネットワーク転送の時間短縮やストレージの節約にもつながります。
tarでファイルを圧縮する基本方法

単一ファイルの圧縮
単一のファイルをtar.gzに圧縮する基本的なコマンドです。
tar -czvf archive.tar.gz ファイル名
例としてreport.txtを圧縮する場合:
tar -czvf report.tar.gz report.txt
複数ファイルやディレクトリの圧縮
複数のファイルをまとめて圧縮するにはスペースで区切って指定します。
tar -czvf archive.tar.gz file1.txt file2.txt file3.txt
ディレクトリごと圧縮する場合:
tar -czvf archive.tar.gz /home/user/myproject/
複数のディレクトリを一度にまとめることもできます。
tar -czvf archive.tar.gz /home/user/dir1/ /home/user/dir2/
基本構文とオプション
tarコマンドの基本構文は以下のとおりです。
tar [オプション] 作成するファイル名 圧縮対象
-c:アーカイブ作成
-cは「create」の意味で、新しいアーカイブを作成するオプションです。圧縮・アーカイブを行う際には必ず指定します。
-v:処理の表示
-vは「verbose(詳細表示)」の意味で、処理中のファイル名を一覧表示します。このオプションを付けることで、どのファイルが処理されているかをリアルタイムで確認できます。省略しても動作に影響はありませんが、確認目的で付けておくことを推奨します。
-f:ファイル名指定
-fは「file」の意味で、作成するアーカイブファイルの名前を指定するオプションです。-fの直後に必ずファイル名を指定する必要があります。他のオプションを-fの後に続けると、ファイル名として誤認識されエラーになるため注意してください。
tar.gzやtar.bz2形式で圧縮する方法

gzip圧縮を使ったtar.gz作成
tar -czvf archive.tar.gz ディレクトリ
gzip形式で圧縮したtar.gzファイルを作成するコマンドです。
tar -czvf archive.tar.gz myproject/
-zオプションがgzip圧縮を指定するキーです。tar.gz形式はLinuxで最も広く使われている圧縮形式で、圧縮速度と圧縮率のバランスが良く、互換性も高いため実務での標準的な選択肢です。
bzip2圧縮を使ったtar.bz2作成
tar -cjvf archive.tar.bz2 ディレクトリ
bzip2形式で圧縮したtar.bz2ファイルを作成するコマンドです。
tar -cjvf archive.tar.bz2 myproject/
-jオプションがbzip2圧縮を指定します。tar.bz2はtar.gzよりも圧縮率が高い反面、処理時間が長くなる傾向があります。
圧縮率や速度の違い
| 形式 | オプション | 圧縮率 | 速度 | 向いている用途 |
|---|---|---|---|---|
| tar(無圧縮) | なし | なし | 最速 | ファイルをまとめるだけ |
| tar.gz | -z | 中程度 | 速い | 日常的な圧縮・転送 |
| tar.bz2 | -j | 高い | やや遅い | サイズ重視のバックアップ |
| tar.xz | -J | 最高 | 遅い | 長期保存・配布パッケージ |
迷った場合はtar.gz(-z オプション)を選んでおくのが無難です。互換性が高く、処理速度も実用的な範囲に収まります。
tarでアーカイブを解凍する方法

tarアーカイブの展開
圧縮なしのtarアーカイブを展開する基本コマンドです。
tar -xvf archive.tar
展開先のディレクトリを指定したい場合は-Cオプションを使います。
tar -xvf archive.tar -C /展開先のディレクトリ/
tar.gzを解凍するコマンド例
tar -xzvf archive.tar.gz
特定のディレクトリに展開する場合:
tar -xzvf archive.tar.gz -C /home/user/extracted/
tar.bz2を解凍するコマンド例
tar -xjvf archive.tar.bz2
展開先を指定する場合:
tar -xjvf archive.tar.bz2 -C /home/user/extracted/
-x:展開オプション
-xは「extract(展開)」の意味で、アーカイブからファイルを取り出すオプションです。圧縮時の-cと対になる操作です。
-f:ファイル名指定
展開時も-fで対象のアーカイブファイルを指定します。圧縮時と同様に、-fの直後にファイル名を置く順序を守ることが重要です。
-v:処理状況の表示
展開時に-vを付けると、展開されているファイル名が一覧表示されます。大量のファイルが含まれているアーカイブでは、展開の進捗確認に役立ちます。
tarコマンドの詳しい使い方については、UX MILK「Linuxのtarコマンドの使い方まとめ」も参考になります。
tar圧縮の応用テクニック
特定ファイルを除外して圧縮する
ディレクトリを圧縮する際に、特定のファイルやディレクトリを除外したい場合は--excludeオプションを使います。
tar -czvf archive.tar.gz myproject/ --exclude='myproject/logs'
複数の除外対象を指定することも可能です。
tar -czvf archive.tar.gz myproject/
--exclude='myproject/logs'
--exclude='myproject/tmp'
--exclude='*.log'
–excludeオプションの活用
--excludeはパターン指定にも対応しています。*.logのようにワイルドカードを使うことで、特定の拡張子を持つファイルをすべて除外できます。大規模なディレクトリを圧縮する際に、不要なキャッシュファイルやログファイルを除外するのに便利です。
圧縮時にパスを調整する
絶対パスで指定したディレクトリを圧縮すると、展開時にそのパス構造がそのまま再現されます。これを避けるには、圧縮対象のディレクトリに移動してから相対パスで指定するか、-Cオプションで基準ディレクトリを指定します。
# 絶対パスを含まないようにする例
cd /home/user/
tar -czvf archive.tar.gz myproject/
または:
tar -czvf archive.tar.gz -C /home/user/ myproject/
複数ディレクトリをまとめて圧縮する
tar -czvf multi_archive.tar.gz /home/user/dir1/ /home/user/dir2/ /home/user/dir3/
スペース区切りで複数のディレクトリやファイルを指定できます。アーカイブ内には指定したすべてのパスがそのまま格納されます。
アーカイブ内の階層整理
複数のディレクトリを一つのアーカイブにまとめる場合、展開後のディレクトリ構造が混在しないよう、圧縮前に整理されたディレクトリ構造を用意しておくことを推奨します。事前にlsやtreeコマンドで構造を確認してから実行すると、意図しない展開結果を防げます。
圧縮後の管理と確認
アーカイブの内容確認(tar -tvf)
アーカイブを展開せずに中身を一覧確認するには-tオプションを使います。
tar -tvf archive.tar.gz
-tは「list(一覧表示)」の意味で、アーカイブ内のファイル名・サイズ・タイムスタンプ・パーミッションが表示されます。展開前に内容を確認したい場合や、意図したファイルが含まれているかを検証する場合に便利です。
サイズや作成日を確認する方法
作成したアーカイブファイルのサイズや日付はlsコマンドで確認できます。
ls -lh archive.tar.gz
-hオプションで人間が読みやすい形式(KB・MB・GBなど)でサイズが表示されます。圧縮効果の確認や、転送前のファイルサイズ確認に活用してください。
圧縮後のバックアップ活用
日付をファイル名に含めることで、バックアップの世代管理がしやすくなります。
tar -czvf backup_$(date +%Y%m%d).tar.gz /home/user/data/
このコマンドを実行した日付が自動的にファイル名に含まれます(例:backup_20250615.tar.gz)。crontabと組み合わせて定期バックアップを自動化することで、手動操作なしに世代管理が実現できます。
tar圧縮で注意すべき点
既存ファイルの上書きに注意
tarコマンドは同名のアーカイブファイルが存在する場合、確認なしに上書きします。バックアップスクリプトなどで同じファイル名を繰り返し使う場合は、日付や番号を付けて別名で保存するか、実行前に既存ファイルの有無を確認する処理を入れることを推奨します。
展開先のディレクトリを確認
展開先を指定せずにtar -xzvfを実行すると、カレントディレクトリに展開されます。注意:アーカイブによっては大量のファイルがカレントディレクトリに展開されることがあります。展開前にtar -tvfで中身を確認し、必要に応じて-Cオプションで展開先ディレクトリを指定してください。
# 展開先ディレクトリを作成してから展開する例
mkdir /home/user/extracted/
tar -xzvf archive.tar.gz -C /home/user/extracted/
圧縮形式による互換性
Linux間での互換性
tar.gzはほぼすべてのLinuxディストリビューションで標準対応しており、互換性の問題はほとんど発生しません。tar.bz2・tar.xzも主要なディストリビューションではサポートされていますが、古い環境では対応していない場合もあります。
Windowsでの解凍ツール対応
Windowsでtar.gzやtar.bz2を展開するには、7-ZipやWinRARなどのツールが必要です。Windows 10以降ではWSL(Windows Subsystem for Linux)またはPowerShellのtarコマンドで直接扱えるようになっています。Windowsユーザーとのファイルのやり取りが多い場合は、zipやzstd形式への変換も検討してください。
tarコマンドの詳細な使い方と応用例については、エンジニア入門「Linuxのtarコマンド完全ガイド」とLinux Master「tarコマンドの基本と応用操作」も参考にしてください。
さらに初心者向けのtarコマンド解説は、Bashdo「初心者でも理解できるtarコマンドの使い方と便利テクニック」も参考になります。
Linuxコマンドの使い方やシステム管理の効率化については、kakiro-web.comでも幅広く解説しています。
まとめ
tarコマンドを使えば複数ファイルを効率的に圧縮・管理できる
tarはLinuxでファイルをまとめて圧縮・管理するための標準コマンドです。複数のファイルやディレクトリをひとつのアーカイブにまとめられ、gzipやbzip2と組み合わせることで効率的な圧縮が実現できます。
tar.gzやtar.bz2を使い分けて圧縮率と速度を最適化
日常的な用途にはtar.gz(-z)が最適です。圧縮率を重視する場合はtar.bz2(-j)、さらに高い圧縮率が必要な場合はtar.xz(-J)を検討します。用途と環境に合わせた形式の選択が、効率的なファイル管理につながります。
圧縮・解凍・アーカイブ管理の基本操作を押さえて安全に運用
展開前の内容確認(tar -tvf)、展開先の明示的な指定(-C)、上書きへの注意——これらを習慣にするだけで、誤操作によるトラブルの大半を防ぐことができます。
- 圧縮アーカイブの作成:
tar -czvf archive.tar.gz 対象 - アーカイブの展開:
tar -xzvf archive.tar.gz - 展開先の指定:
tar -xzvf archive.tar.gz -C /展開先/ - 中身の確認(展開なし):
tar -tvf archive.tar.gz - ファイル除外:
--exclude='パターン'オプションを使う - バックアップ名に日付を含める:
$(date +%Y%m%d)を活用する - tar.gzは互換性・速度・圧縮率のバランスが良く実務標準の選択肢

