カテゴリ: Linux 更新日: 2026/02/05

Linuxのtarコマンドでディレクトリをアーカイブ・圧縮する方法を徹底解説!

Linuxのtarでディレクトリをまとめてアーカイブする方法
Linuxのtarでディレクトリをまとめてアーカイブする方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでたくさんのファイルを一つにまとめたり、サイズを小さくしたりするにはどうすればいいですか?」

先生

「それなら『tar(ター)』というコマンドを使うのが一般的ですよ。複数のファイルを一つの『アーカイブ』という塊にまとめることができるんです。」

生徒

「アーカイブ……?聞き慣れない言葉ですね。Windowsでいう『ZIP(ジップ)』みたいなものですか?」

先生

「その通り!WindowsのZIPファイルと同じように、バラバラの書類を一冊のファイルに綴じるイメージですね。さらに圧縮して容量を節約することもできます。さっそく使い方を見ていきましょう!」

1. アーカイブと圧縮の違いを知ろう

1. アーカイブと圧縮の違いを知ろう
1. アーカイブと圧縮の違いを知ろう

Linuxを触り始めたばかりの方が最初につまずきやすいのが、「アーカイブ」「圧縮」という二つの言葉の違いです。これらは似ていますが、役割が少し異なります。

アーカイブとは、複数のファイルやディレクトリ(フォルダのこと)を、中身の構造を保ったまま「一つのファイルにまとめること」を指します。たとえるなら、バラバラのプリントをバインダーに綴じるような作業です。これだけでは、ファイル全体の合計サイズはほとんど変わりません。

一方で圧縮とは、専用の計算式を使ってデータの無駄を省き、「ファイルサイズを小さくすること」を指します。布団圧縮袋で布団を小さくするようなイメージです。

Linuxのtarコマンドは、基本的には「まとめる(アーカイブ)」ための道具ですが、オプションを追加することで「まとめると同時に小さくする(圧縮)」ことも可能になります。この「ひとまとめにしたファイル」のことをアーカイブファイル、あるいは親しみを込めてタールボールと呼んだりします。

2. tarコマンドの基本とオプションの覚え方

2. tarコマンドの基本とオプションの覚え方
2. tarコマンドの基本とオプションの覚え方

tarコマンドを使うときは、コンピュータに「何をしたいか」を伝えるために「オプション」という命令を組み合わせます。初心者の方がまず覚えるべき基本のアルファベットは以下の4つです。

  • c (create):新しくアーカイブファイルを作成する。
  • v (verbose):処理中のファイル名を表示する(何が起きているか見えるので安心です)。
  • f (file):アーカイブのファイル名を指定する。
  • x (extract):アーカイブされたファイルを元に戻す(解凍・展開)。

これらを組み合わせて使います。たとえば、新しくファイルを作るときは -cvf というセットで使うのが定番です。呪文のように「シー・ブイ・エフ」と覚えてしまいましょう。

3. ディレクトリを一つにまとめる(アーカイブ作成)

3. ディレクトリを一つにまとめる(アーカイブ作成)
3. ディレクトリを一つにまとめる(アーカイブ作成)

それでは実際に、ディレクトリを一つにまとめてみましょう。ここでは「photos」という名前のディレクトリを、「backup.tar」という名前の一つのファイルにまとめてみます。

実行する場所は、対象のディレクトリが見える場所(カレントディレクトリ)です。コマンドを実行すると、元のディレクトリはそのままで、新しくアーカイブファイルが出来上がります。


tar -cvf backup.tar photos
photos/
photos/cat.jpg
photos/dog.jpg

このコマンドの構造を分解すると、tar [オプション] [作りたいファイル名] [まとめたい対象] となっています。-cvf オプションのおかげで、画面にはどのファイルが処理されたかが一覧で表示されます。これで、バラバラだった写真ファイルが backup.tar という一つのファイルにまとまりました。

4. まとめたファイルを元に戻す(展開・解凍)

4. まとめたファイルを元に戻す(展開・解凍)
4. まとめたファイルを元に戻す(展開・解凍)

一つにまとめた .tar ファイルを、元のディレクトリの状態に戻すことを「展開」や「解凍」と呼びます。このときは c(作る)の代わりに x(取り出す)を使います。

例えば、先ほど作った backup.tar を元のバラバラの状態に戻したいときは、以下のコマンドを入力します。


tar -xvf backup.tar
photos/
photos/cat.jpg
photos/dog.jpg

実行すると、現在の場所に「photos」ディレクトリが復元されます。もし同じ名前のディレクトリが既にある場合は、中身が上書きされることがあるので注意が必要です。作業前に ls コマンドで現在の状況を確認する癖をつけておくと、初心者のうちは大きなミスを防げます。

5. ギュッと小さくしてまとめる(gzip圧縮)

5. ギュッと小さくしてまとめる(gzip圧縮)
5. ギュッと小さくしてまとめる(gzip圧縮)

ただまとめるだけでなく、インターネットで送る際やディスク容量を節約したいときには「圧縮」を組み合わせます。最もよく使われるのが gzip(ジー・ジップ)という方式です。この方式を使うには、オプションに z を追加します。

圧縮されたファイルの拡張子(ファイル名の後ろにつく印)は、慣習として .tar.gz にします。


tar -czvf backup.tar.gz photos
photos/
photos/cat.jpg
photos/dog.jpg

この -czvf は、Linuxの世界では毎日使われるほど有名な呪文です。z を足すだけで、ファイルサイズがグッと小さくなります。画像ファイルなどはもともと圧縮されているのであまり変わりませんが、テキストファイルやプログラムのソースコードなどは驚くほど小さくなります。

6. 圧縮されたファイルを展開する方法

6. 圧縮されたファイルを展開する方法
6. 圧縮されたファイルを展開する方法

拡張子が .tar.gz になっているファイルを元の状態に戻すときも、作成時と同じように z オプションを添えるのが基本です。ただし、最近の tar コマンドは賢いので、z を付け忘れても自動で判断してくれることが多いですが、基本に忠実に -xzvf と入力しましょう。


tar -xzvf backup.tar.gz
photos/
photos/cat.jpg
photos/dog.jpg

これで、圧縮されて一塊になっていたファイルが魔法のように元のディレクトリ構造で現れます。プログラミングの現場では、ライブラリやツールをインストールする際に、この形式で配布されているものをダウンロードして展開する作業が頻繁に発生します。

7. 中身だけを確認する方法(展開せずに見る)

7. 中身だけを確認する方法(展開せずに見る)
7. 中身だけを確認する方法(展開せずに見る)

「この大きなアーカイブファイルの中に、目当てのファイルが入っているかな?」と気になったとき、いちいち展開するのは面倒ですよね。そんなときは t オプションを使います。t は「list(リスト)」の略だと考えると覚えやすいでしょう。


tar -tvf backup.tar.gz
drwxr-xr-x user/group  0 2026-01-09 10:00 photos/
-rw-r--r-- user/group  45210 2026-01-09 10:00 photos/cat.jpg
-rw-r--r-- user/group  51200 2026-01-09 10:00 photos/dog.jpg

このコマンドを実行しても、ファイルは展開されません。あくまで「中身の目録」を表示するだけなので、ハードディスクの容量を消費することなく中身をチェックできます。非常にスマートな確認方法です。

8. より高い圧縮率を求めるなら「j」オプション

8. より高い圧縮率を求めるなら「j」オプション
8. より高い圧縮率を求めるなら「j」オプション

「もっともっとファイルを小さくしたい!」という場合には、bzip2(ビー・ジップ・ツー)という方式を使います。これは gzip よりも計算に時間はかかりますが、より強力にサイズを縮小できるのが特徴です。この場合はオプションに j を使い、拡張子は .tar.bz2 とします。


tar -cjvf backup.tar.bz2 photos
photos/
photos/cat.jpg
photos/dog.jpg

展開するときは、先ほどの zj に変えて -xjvf とすればOKです。Linuxでは、用途や好みに合わせてこれらの圧縮方式を使い分けます。初心者の方は、まずは汎用性の高い z (gzip) からマスターして、余裕があれば j (bzip2) を覚えるのが上達の近道です。

9. ルート権限でアーカイブを扱う際の注意点

9. ルート権限でアーカイブを扱う際の注意点
9. ルート権限でアーカイブを扱う際の注意点

システムに関わる重要な設定ファイルなどをアーカイブする場合、権限(パーミッション)の問題で一般ユーザーでは操作できないことがあります。その場合は sudo を使うか、ルートユーザー(管理者)になって操作を行います。ルートユーザーで実行すると、プロンプト(入力待ちの記号)が $ から # に変わります。


tar -cvf config_backup.tar /etc/nginx
tar: Removing leading `/' from member names
/etc/nginx/
/etc/nginx/nginx.conf

ルート権限での操作は非常に強力です。誤って大切なシステムファイルを削除したり上書きしたりしないよう、慎重にコマンドを打ち込みましょう。アーカイブを作る際に出てくる「Removing leading `/`」というメッセージは、「安全のためにルートディレクトリを示すスラッシュを取り除きましたよ」という親切な警告なので、初心者のうちは気にしすぎなくても大丈夫です。

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門