Linux tar コマンド完全ガイド - アーカイブの仕組みから圧縮・解凍の実務例まで

概要

Linux環境で大容量のファイルやディレクトリをまとめ、圧縮する際によく使われる tar コマンドの動作原理について解説します。アーカイブと圧縮の本質的な違いを理解し、実際のターミナルでの実践を通じて必須オプションの活用法を身につけることができます。

tarの基本概念:まとめるだけ(アーカイブ)と圧縮の違い

tar アーカイブの実践を行うため、実習用ディレクトリとサンプルのテキストファイルを作成します。

mkdir -p ~/tar-demo/sample && echo ‘Hello Linux 1’ > ~/tar-demo/sample/file1.txt && echo ‘Hello Linux 2’ > ~/tar-demo/sample/file2.txt

tar コマンドは、複数のファイルやディレクトリを1つのアーカイブファイルにまとめたり、展開したりする際に使用します。
-c、-v、-f オプションと -C オプションを組み合わせて、sample ディレクトリを archive.tar ファイルとしてまとめて作成します。
⚙️ [主要オプション]

-c : 新しいアーカイブファイルを作成します。
-x : アーカイブファイルの内容を解凍・抽出(展開)します。
-t : アーカイブに含まれるファイル一覧を確認します。
-v : アーカイブの作成または展開の処理経過を画面に詳細表示します。
-f : 操作対象のアーカイブファイル名を指定します。
-z : gzip アルゴリズムを使用して圧縮または解凍します(.tar.gz)。
-j : bzip2 アルゴリズムを使用して圧縮または解凍します(.tar.bz2)。
-J : xz アルゴリズムを使用して圧縮または解凍します(.tar.xz)。
-C : アーカイブ処理を実行する対象のディレクトリパスを指定します。

tar -cvf ~/tar-demo/archive.tar -C ~/tar-demo sample

ls -lh コマンドで作成された archive.tar ファイルと元のディレクトリの詳細情報を確認します。
単にファイルを1つにまとめただけのアーカイブであるため、ファイルサイズを減らすための圧縮処理は行われていない状態です。

ls -lh ~/tar-demo

実務で役立つ圧縮オプション:gzip(-z) と bzip2(-j) の活用

gzip 圧縮オプションである -z を追加して、sample ディレクトリのアーカイブ作成と同時に圧縮を行った .tar.gz ファイルを作成します。
高速な圧縮速度と良好な圧縮率を提供するため、実務で最も広く使われている方式です。

tar -czvf ~/tar-demo/archive.tar.gz -C ~/tar-demo sample

bzip2 圧縮オプションである -j を指定し、sample ディレクトリをまとめると同時に圧縮した .tar.bz2 アーカイブを作成します。
gzip に比べて圧縮処理に時間はかかりますが、一般的にさらに高い圧縮率を発揮します。

tar -cjvf ~/tar-demo/archive.tar.bz2 -C ~/tar-demo sample

作成されたアーカイブファイルの一覧とファイルサイズを確認するため、ls -lh ~/tar-demo/*.tar* コマンドを実行します。
圧縮を行っていない通常のアーカイブ(archive.tar)と比較して、圧縮アルゴリズムが適用されたファイルのサイズ差を確認できます。

ls -lh ~/tar-demo/.tar

アーカイブ内のファイル一覧プレビュー(-t)と安全な事前検証

解凍前にアーカイブ内のファイル構成とディレクトリパスをあらかじめ確認するため、tar -tvf ~/tar-demo/archive.tar.gz コマンドを実行します。
-t オプションに詳細表示オプションの -v を併用することで、実際に解凍することなく、含まれているファイルのパーミッション、所有者、サイズ、ディレクトリ構造を安全に事前確認できます。

tar -tvf ~/tar-demo/archive.tar.gz

指定したパスへの安全な解凍(-x と -C)

安全に解凍を行うための専用ディレクトリを作成するため、mkdir -p ~/tar-demo/extracted コマンドを実行します。

mkdir -p ~/tar-demo/extracted

-x と -C オプションを使用して、現在の作業ディレクトリを汚すことなく、指定した対象パスにアーカイブファイルを解凍します。
-z オプションで gzip 圧縮を解凍し、-v オプションで解凍されるファイルの一覧をリアルタイムに確認します。

tar -xzvf ~/tar-demo/archive.tar.gz -C ~/tar-demo/extracted

指定したパスにアーカイブ内のファイルが正しく展開されたか確認するため、ls -la ~/tar-demo/extracted/sample コマンドを実行します。
出力結果から、ファイルの所有権やパーミッションがアーカイブ作成時の状態のまま復元されていることが確認できます。

ls -la ~/tar-demo/extracted/sample

ここまで、Linux tar コマンドの基本的な動作原理から、実務で頻繁に使われる圧縮・解凍の例までを解説しました。
状況に応じた主要オプションを活用し、Linux環境でのファイル管理やバックアップ作業をより効率的に進めてみてください。