環境
Ubuntu20.4
はじめに
普段、Windowsを使っていると意識することがないのだが、厳密にいえば、アーカイブと圧縮は別物として認識されます。Linuxを触ると、このことを否をなく意識せざるを得なくなります。アーカイブとは複数のファイルを1つのファイルにまとめたものです。圧縮はかかっていません。圧縮とは文字通り、ファイル容量を小さくするものです。圧縮の逆が解凍になります。そして、アーカイブの逆が展開となります。普段、Windowsを使っていると、アーカイブと圧縮は一遍に行われます。Windowsの環境でアーカイブだけを行うことは、自身の経験上、まずありません。しかし、Linuxを使っていると、アーカイブだけを行うことがあります。アーカイブを行うコマンドはtarコマンドです。そして、圧縮を行うコマンドはgzipコマンドです。tarコマンドだけでも、オプションを指定することで、アーカイブと圧縮とを一遍に行うことができます。
やったこと
アーカイブと圧縮をやってみます。その前に、まず、テスト用のファイルを3つ作成します。
touch test{1..3}.txt
3つのファイルを束ねて、test9.tarというアーカイブファイルを作成します。アーカイブの拡張子はtarになります。
tar -cvf test9.tar test1.txt test2.txt test3.txt
tar -cvf test9.tar test{1..3}.txt # これでもOK
オプションについて説明します。cは、新規のアーカイブを作成するオプションです。これは必ずつけます。vは、tarコマンドを実行した直後に、圧縮元ファイルの一覧を確認のために表示するオプションです。このオプションはなくても問題ありません。fは、アーカイブのファイル名を指定するオプションです。これも必須です。
アーカイブされたファイルの中身を確認するコマンドです。
tar -tf test9.txt
オプションのtは、展開することなく、中身を確認するためのオプションです。
次に、アーカイブファイルを展開します。
tar -xvf test9.tar
オプションについて説明します。xは、アーカイブファイルを展開しますというオプションです。必須です。コマンドを実行すると、3つのファイルがカレントディレクトリに展開されます。同名のファイルが既に存在している場合は上書きされることになります。
3つのファイルを削除してから、展開をしてみます。
rm test{1..3}txt
tar -xvf test9.tar
3つのファイルが展開されていることがわかります。アーカイブを展開しても、元のアーカイブファイルは削除されません。削除したい場合は、展開後に手動で削除します。
rm test9.tar
次に、アーカイブと圧縮を一遍に行います。
tar -cvzf test9.tar.gz test1.txt test2.txt test3.txt
オプションのzは、gzipの圧縮処理を行うオプションです。アーカイブファイルでないファイルを圧縮するときは、拡張子はgzとなるが、アーカイブファイルを圧縮するときの拡張子はtar.gzとなります。拡張子を見ただけで、展開後のファイルが、アーカイブファイルなのか、そうでないのか、判断をつけることができます。
アーカイブと圧縮の両方行われているファイルを、展開・解凍することなく、中身を確認することもできます。コマンドは、アーカイブファイルの中身を確認するときと同じオプションです。
tar -xvf test9.tar
元ファイルを削除した後、アーカイブ・圧縮されたファイルを、一遍に、展開・解凍します。
rm test{1..3}.txt
tar -xvzf test9.tar.gz