このページで解説している内容は、以下の 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 sub | archive.tar | ファイル群を1つにまとめる。 |
| 圧縮 | gzip archive.tar | archive.tar.gz | アーカイブを圧縮する。 |
| 展開 | tar xvf archive.tar | sub/ | まとめたファイルを展開 |
| 解凍 | gunzip archive.tar.gz | archive.tar | 圧縮を解く |
この表から、tarとgzipの組み合わせにより「まとめる+圧縮する」流れが分かります。
まとめ
「新Linuxコマンド演習09」では、tarとgzipを使ったアーカイブ・圧縮・展開の一連の流れを実践的に学びました。
- tarはファイルをまとめる(アーカイブ)
- gzipは圧縮を行う。
- tar+gzipで.tar.gz形式のバックアップを作成できる。
この演習を通じて、Linuxにおけるバックアップ運用の基本をしっかりと理解できます。
