このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

新Linuxコマンド演習09

新Linuxコマンド演習09 概要

 「新Linuxコマンド演習09」では、Linuxでよく使われるtarコマンドとgzipコマンドを組み合わせて、複数のファイルやディレクトリをまとめて圧縮・展開する方法を学びます。
 tar(Tape Archive)は、複数のファイルやディレクトリを1つのアーカイブファイルにまとめるためのコマンドで、gzipはそのアーカイブファイルを圧縮するために使用します。
この組み合わせは、バックアップやデータ転送の際に非常に一般的です。

tar と gzip の役割比較表

コマンド主な役割主なオプション説明
tarファイルやディレクトリをまとめる(アーカイブ作成)c:新しいアーカイブ作成
x:展開
v:詳細表示
f:アーカイブファイル名を指定
複数のファイルを1つのtarファイルにまとめる。
gzipファイルの圧縮・解凍-c:標準出力に出力
-d:解凍
-v:詳細表示
単一ファイルを圧縮または解凍する。tarと併用して圧縮率を高める。

この表から分かるように、tarは「まとめる」、gzipは「圧縮する」という異なる役割を持っています。
両者を組み合わせて使うことで、ディレクトリ全体のバックアップを効率的に行えます。

演習問題+模範解答例

演習01:ディレクトリとファイルの作成

問題
 バックアップ対象のディレクトリsub を作成し、いくつかのテキストファイルを中に生成してください。

模範解答例

[suzuki@AlmaLinux ~]$ mkdir -p sub/sub-sub/sub-sub-sub
[suzuki@AlmaLinux ~]$ cd sub/sub-sub/sub-sub-sub/
[suzuki@AlmaLinux sub-sub-sub]$ date > date1.txt
[suzuki@AlmaLinux sub-sub-sub]$ date > date2.txt
[suzuki@AlmaLinux sub-sub-sub]$ date > date3.txt
[suzuki@AlmaLinux sub-sub-sub]$ cd

解説
 mkdir -p は上位ディレクトリも同時に作成します。date コマンドで現在時刻を出力し、複数のファイルを用意します。

演習02:gzipコマンドの制限を確認する

問題
gzipコマンドでsubディレクトリを圧縮しようとした場合、どのような結果になるか確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ gzip sub
gzip: sub is a directory -- ignored

解説
gzipは単一ファイルのみを圧縮でき、ディレクトリには対応していません。
そのため、tarを使ってまとめる必要があります。

演習03:tarでアーカイブファイルを作成

問題
subディレクトリをarchive.tarという名前でアーカイブしてください。

模範解答例

[suzuki@AlmaLinux ~]$ tar cvf archive.tar sub
sub/
sub/sub-sub/
sub/sub-sub/sub-sub-sub/
sub/sub-sub/sub-sub-sub/date1.txt
sub/sub-sub/sub-sub-sub/date2.txt
sub/sub-sub/sub-sub-sub/date3.txt

解説
tarコマンドはファイルをまとめるコマンドです。
オプションの意味は以下の通りです。

オプション説明
c新しいアーカイブを作成する。
v詳細を表示する。
fファイル名を指定する。

出力結果から、sub以下のすべてのファイルがまとめられていることが確認できます。

演習04:gzipでアーカイブを圧縮する

問題
作成したarchive.tarファイルをgzipで圧縮してください。

模範解答例

[suzuki@AlmaLinux ~]$ gzip archive.tar
[suzuki@AlmaLinux ~]$ ls
Desktop    Downloads  Pictures  Templates  archive.tar.gz
Documents  Music      Public    Videos     sub

解説
gzipで圧縮すると、元のarchive.tar はarchive.tar.gz に置き換わります。
この拡張子「.tar.gz」はtar+gzipで圧縮したファイルであることを示します。

演習05:圧縮アーカイブを展開する

問題
圧縮ファイル archive.tar.gz を使って、削除した sub ディレクトリを復元してください。

模範解答例

[suzuki@AlmaLinux ~]$ rm -r sub
[suzuki@AlmaLinux ~]$ gunzip archive.tar.gz
[suzuki@AlmaLinux ~]$ tar xvf archive.tar
sub/
sub/sub-sub/
sub/sub-sub/sub-sub-sub/
sub/sub-sub/sub-sub-sub/date1.txt
sub/sub-sub/sub-sub-sub/date2.txt
sub/sub-sub/sub-sub-sub/date3.txt

解説
gunzipで圧縮を解き、tarで展開します。
オプションの意味は以下の通りです。

オプション説明
xアーカイブを展開する。
v詳細を表示する。
fファイル名を指定する。

subディレクトリが完全に復元されることを確認します。

演習終了時の作業:後片付け

問題
作成したアーカイブやディレクトリを削除してください。

模範解答例

[suzuki@AlmaLinux ~]$ rm archive.tar
[suzuki@AlmaLinux ~]$ rm -r sub
[suzuki@AlmaLinux ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

解説
rm -r はディレクトリを再帰的に削除します。クリーンな環境に戻して演習を終了します。

tar と gzip の関係図解

処理コマンド出力ファイル説明
アーカイブ作成tar cvf archive.tar subarchive.tarファイル群を1つにまとめる。
圧縮gzip archive.tararchive.tar.gzアーカイブを圧縮する。
展開tar xvf archive.tarsub/まとめたファイルを展開
解凍gunzip archive.tar.gzarchive.tar圧縮を解く

この表から、tarとgzipの組み合わせにより「まとめる+圧縮する」流れが分かります。

まとめ

 「新Linuxコマンド演習09」では、targzipを使ったアーカイブ・圧縮・展開の一連の流れを実践的に学びました。

  • tarはファイルをまとめる(アーカイブ)
  • gzipは圧縮を行う
  • tar+gzipで.tar.gz形式のバックアップを作成できる。

この演習を通じて、Linuxにおけるバックアップ運用の基本をしっかりと理解できます。