Linuxでファイル操作を行う際、複数のファイルをまとめたり、ディレクトリを圧縮したりする場面は頻繁にあります。
そんなとき強力な味方となるのがtar
コマンドです。
サーバー管理やバックアップ、ログ保管など、Linux環境では欠かせないツールといえるでしょう。
この記事では、初心者の方でも理解できるよう基本的な使い方から解説し、中級・上級者向けの便利なテクニックまで幅広く紹介します。
tarとは?基本概念と特徴

tar
(tape archive)は、元々磁気テープ向けのバックアップツールとして開発されたコマンドです。
現在では、複数のファイルやディレクトリを1つのファイルにまとめるアーカイブツールとして広く使われています。
tarの特徴として、単独では圧縮機能を持たないという点があります。
実際の運用では、gzip
やbzip2
などの圧縮ツールと組み合わせて使用するケースが多いです。
代表的なtar形式
形式 | 拡張子 | 特徴 |
---|---|---|
標準tar | .tar | 圧縮なし、単純にファイルをまとめるだけ |
tar + gzip | .tar.gz または .tgz | 圧縮率と処理速度のバランスが良い(一般的) |
tar + bzip2 | .tar.bz2 | gzipより高圧縮だが処理は遅い |
tar + xz | .tar.xz | 最も高い圧縮率だが、処理時間も長い |
基本的な使い方(作成・展開)

アーカイブを作成する(圧縮なし)
tar -cvf archive.tar folder/
このコマンドの各オプションの意味:
c
: create(新しいアーカイブを作成)v
: verbose(処理中のファイル名を表示)f
: file(出力先ファイル名を指定)
アーカイブを展開(解凍)する
tar -xvf archive.tar
このコマンドの各オプションの意味:
x
: extract(アーカイブを展開)v
: verbose(処理中のファイル名を表示)f
: file(入力ファイル名を指定)
圧縮形式別の使い方

gzip形式(.tar.gz, .tgz)
最も一般的な圧縮形式です。圧縮率と速度のバランスが良好です。
圧縮する:
tar -czvf archive.tar.gz folder/
展開する:
tar -xzvf archive.tar.gz
bzip2形式(.tar.bz2)
gzipより高い圧縮率を持ちますが、処理時間は長くなります。
圧縮する:
tar -cjvf archive.tar.bz2 folder/
展開する:
tar -xjvf archive.tar.bz2
xz形式(.tar.xz)
最も高い圧縮率を持ちますが、処理には最も時間がかかります。
圧縮する:
tar -cJvf archive.tar.xz folder/
展開する:
tar -xJvf archive.tar.xz
よく使うオプション一覧

オプション | 説明 | 使用例 |
---|---|---|
-c | アーカイブを新規作成 | tar -cf archive.tar files/ |
-x | アーカイブを展開 | tar -xf archive.tar |
-v | 処理中のファイル名を表示 | tar -cvf archive.tar folder/ |
-f | ファイル名を指定 | tar -cf archive.tar files/ |
-z | gzip形式で圧縮/展開 | tar -czf archive.tar.gz files/ |
-j | bzip2形式で圧縮/展開 | tar -cjf archive.tar.bz2 files/ |
-J | xz形式で圧縮/展開 | tar -cJf archive.tar.xz files/ |
-C | 展開先ディレクトリを指定 | tar -xf archive.tar -C /tmp/ |
-t | アーカイブ内容の一覧表示 | tar -tf archive.tar |
-r | アーカイブにファイルを追加 | tar -rf archive.tar newfile |
-u | 新しいファイルのみ追加 | tar -uf archive.tar newfile |
ファイルを除外して圧縮する方法

バックアップやデプロイ時に、不要なファイルを除外したい場合があります。
--exclude
オプションを使うと、特定のパターンに一致するファイルを除外できます。
特定のファイルタイプを除外
tar --exclude='*.log' -czvf archive.tar.gz folder/
複数のパターンを除外
tar --exclude='*.log' --exclude='tmp/' --exclude='.git/' -czvf archive.tar.gz folder/
除外リストファイルを使用
複数の除外パターンがある場合は、ファイルにリストアップして指定する方法も便利です:
tar -X exclude-list.txt -czvf archive.tar.gz folder/
exclude-list.txt
の内容例:
*.log
tmp/
.git/
node_modules/
よくあるトラブルと対処法

問題:ファイルが正しく展開されない
対処法: 適切な圧縮形式のオプションを使用しているか確認しましょう。
.tar.gz
ファイルなら-z
オプション.tar.bz2
ファイルなら-j
オプション.tar.xz
ファイルなら-J
オプション
問題:展開時にファイルが現在のディレクトリに散らかる
対処法: -C
オプションで展開先を指定します。
tar -xzvf archive.tar.gz -C /path/to/extract/
問題:パーミッションが保持されない
対処法: --same-permissions
または-p
オプションを使用します。
tar -xvf archive.tar --same-permissions
問題:特定のファイルだけ展開したい
対処法: 展開したいファイルのパスを指定します。
tar -xvf archive.tar path/to/specific/file
まとめ
操作 | コマンド例 |
---|---|
標準tar作成 | tar -cvf archive.tar folder/ |
gzip圧縮 | tar -czvf archive.tar.gz folder/ |
bzip2圧縮 | tar -cjvf archive.tar.bz2 folder/ |
xz圧縮 | tar -cJvf archive.tar.xz folder/ |
展開 | tar -xvf archive.tar |
gzip展開 | tar -xzvf archive.tar.gz |
除外して圧縮 | tar --exclude='*.log' -czvf archive.tar.gz folder/ |
特定の場所に展開 | tar -xvf archive.tar -C /tmp/ |
内容確認 | tar -tvf archive.tar |
コメント