この記事では、Linuxの
tar コマンドを使ってディレクトリを圧縮・アーカイブする実践的な手順を解説します。単一のディレクトリだけでなく、複数ディレクトリのまとめ方や、不要なファイルを除外する(--exclude)、解凍先の指定といった現場のノウハウまで網羅しました。・
tar czvf コマンドでディレクトリを丸ごとgzip圧縮できる・
--exclude オプションでキャッシュやログファイルを除外できる・複数ディレクトリをスペース区切りで指定すれば1つにまとめられる
・
tar tzvf で展開せずに中身を確認する習慣が現場の鉄則・解凍先を変えたい場合は
-C、権限を保持する場合は -p オプションを使うでも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
1. ディレクトリを丸ごと圧縮する(基本)
特定のディレクトリを丸ごと1つのアーカイブファイル(.tar.gzなど)にまとめるには、tar コマンドに czvf オプションを付けます。基本構文は以下の通りです。
# tar czvf [作成する圧縮ファイル名] [圧縮したいディレクトリ名]
$ ls -l drwxrwxr-x 2 user user 4096 2月 21 10:00 work $ tar czvf work.tar.gz work/ work/ work/list.txt work/config.php
work.tar.gz が作成されます。よく使うオプション(czvf)の意味
・c (create):新しいアーカイブを作成する・
z (gzip):gzip形式で圧縮してサイズを小さくする・
v (verbose):処理しているファイル名の一覧を画面に表示する・
f (file):アーカイブファイル名を指定する(必ず最後に書く)圧縮せずにアーカイブだけする場合(.tar)
gzip圧縮をせず、単純にファイルをひとまとめにするだけでよい場合は、z オプションを外します。転送や圧縮に時間をかけたくない場合や、後から別の方法で圧縮する際に使います。# 圧縮なしのアーカイブ(.tar)を作成する $ tar cvf work.tar work/
2. 複数のディレクトリを1つにまとめて圧縮する
「appディレクトリとlogsディレクトリの両方を1つのバックアップファイルにまとめたい」という場合は、圧縮したい対象をスペース区切りで並べるだけでOKです。$ tar czvf backup.tar.gz app/ logs/
3. 特定のファイルやディレクトリを圧縮から除外する(--exclude)
現場のバックアップ作業で最もよく使われるのが、この--exclude オプションです。「ディレクトリ全体を圧縮したいけど、中にあるキャッシュ(cache)やログファイルは容量が大きいから含めたくない」という場合に活躍します。
除外したいファイル名やディレクトリ名を
--exclude=名前 という形式で指定します。オプションの位置は czvf の前後どちらでも動作しますが、可読性のため圧縮ファイル名の直後に書くのが一般的です。# workディレクトリ内の「cache」ディレクトリを除外して圧縮する $ tar czvf work.tar.gz --exclude="work/cache" work/ # 拡張子が「.log」のファイルをすべて除外して圧縮する $ tar czvf work.tar.gz --exclude="*.log" work/
4. 圧縮ファイルの中身を確認する(展開せずに一覧表示)
圧縮が完了したら、実際に展開する前に中身を確認する習慣をつけましょう。t(list)オプションを使うと、アーカイブを展開せずにファイルの一覧だけを表示できます。$ tar tzvf work.tar.gz drwxrwxr-x user/user 0 2026-02-21 10:00 work/ -rw-r--r-- user/user 1234 2026-02-21 09:00 work/list.txt -rw-r--r-- user/user 5678 2026-02-21 09:00 work/config.php
5. 圧縮したファイルを元に戻す(解凍・展開)
作成した.tar.gz ファイルを展開(解凍)して元のディレクトリに戻すには、c(作成)の代わりに x(抽出)オプションを使用します。$ tar xzvf work.tar.gz
work/ ディレクトリが復元されます。解凍先のディレクトリを指定する(-C オプション)
カレントディレクトリではなく、別の場所に展開したい場合は-C オプションで展開先を指定します。復元先が決まっている本番環境での作業や、テスト展開の際によく使います。# /tmp/restore/ ディレクトリに展開する(展開先は事前に作成しておく) $ tar xzvf work.tar.gz -C /tmp/restore/
mkdir で作成しておいてください。パーミッション(権限)を保持して展開する(-p オプション)
通常の展開では、実行ユーザーのumask 設定によってファイルのパーミッションが変わってしまう場合があります。バックアップからの復元時に元の権限をそのまま再現したい場合は、-p オプションを追加します。# パーミッションを保持したまま展開する(root権限推奨) $ sudo tar xpzvf work.tar.gz -C /var/www/
tar.bz2ファイルを解凍・展開する方法
.tar.bz2形式はbzip2で圧縮されたtarアーカイブです。展開するには-j オプションを使います。# .tar.bz2を展開する基本コマンド(カレントディレクトリに展開) tar -jxvf archive.tar.bz2 # 展開先ディレクトリを指定する tar -jxvf archive.tar.bz2 -C /tmp/ # 展開せずに中身を確認する tar -jtvf archive.tar.bz2
オプションの意味
・-j:bzip2形式の圧縮/解凍を指定・-x:アーカイブから展開する
・-v:展開中のファイル名を表示する
・-f:アーカイブファイル名を指定する(直後にファイル名を書く)
・-C:展開先ディレクトリを指定する
・-t:展開せずに中身を一覧表示する
実行例(.tar.bz2の展開)
[ec2-user@server ~]$ tar -jxvf sample.tar.bz2 sample/ sample/README.txt sample/config.conf sample/scripts/run.sh [ec2-user@server ~]$ ls sample/ README.txt config.conf scripts/
.tar.gz と .tar.bz2 の違い
・.tar.gz(-z):gzip圧縮。圧縮・解凍が速い。一般的なLinuxパッケージ配布に多い・.tar.bz2(-j):bzip2圧縮。圧縮率が高いがやや遅い。カーネルソースやソフトウェアの配布に使われることが多い
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| ディレクトリをgzip圧縮する | tar czvf 圧縮ファイル名.tar.gz 対象ディレクトリ/ |
| 圧縮なしでアーカイブする | tar cvf アーカイブ名.tar 対象ディレクトリ/ |
| 複数ディレクトリをまとめる | tar czvf 圧縮ファイル名.tar.gz 対象1/ 対象2/ |
| 特定のファイルを除外する | tar czvf 圧縮ファイル名.tar.gz --exclude="除外名" 対象/ |
| 中身を確認する(展開しない) | tar tzvf 圧縮ファイル名.tar.gz |
| 圧縮ファイルを解凍する | tar xzvf 圧縮ファイル名.tar.gz |
| 解凍先ディレクトリを指定する | tar xzvf 圧縮ファイル名.tar.gz -C 展開先ディレクトリ/ |
| パーミッションを保持して解凍する | tar xpzvf 圧縮ファイル名.tar.gz -C 展開先/ |
tarコマンドだけでなく、Linuxサーバーのバックアップ・運用を安全に行うための「型」を身につけたいですか?
圧縮・除外・展開の手順を正しく理解することは、本番サーバー運用での事故を防ぐ第一歩です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます