tarコマンドで作れるファイルは「tar.gz」だけじゃない!より高性能なデータ圧縮方式を使おう!【tar.bz2・tar.xz】

Linuxテクニック

tarコマンドで作成するファイルといえば「gzip」で圧縮した「.tar.gz」が定番です。それに加えて、よりファイルサイズを小さくできる「.tar.bz2」や「.tar.xz」を作る方法も知っておきましょう。
ファイルサイズを小さくできれば、保存するストレージ容量の節約にもなりますし、別のストレージへのコピーやネットワーク転送にかかる時間も短縮できます。

「.tar」を作成する(無圧縮)

ファイルを「tarアーカイブファイル」にまとめるだけで圧縮しない場合は、次のように「-cvf」オプションを用います。通常、拡張子は「.tar」を用います。なお、「-cf」だけを指定した場合、アーカイブファイルに入れたファイルやディレクトリを出力しません。

tar -cvf <名前>.tar <ファイルやディレクトリ> […]

次の例は、「data/」ディレクトリ以下を「archive.tar」という名前のファイルにまとめます。

tar -cvf archive.tar data/

「.tar.gz」を作成する(gzipで圧縮)

「tarアーカイブ」を「gzip」で圧縮する場合は、次のように「-zcvf」オプションを用います。通常、拡張子は「.tar.gz」あるいは「.tgz」を用います。古くから広く用いられており、マニュアルや解説記事などで最もよく見かける方法です。

tar -zcvf <名前>.tar.gz <ファイルやディレクトリ> […]

次のように、「-z」の代わりに、アーカイブファイル名の末尾から自動で圧縮プログラムを決定する「-a」オプションを使うこともできます。ファイル名の末尾が「.gz」の場合、gzipによって圧縮されます。

tar -acvf <名前>.tar.gz <ファイルやディレクトリ> […]

次の例は、「data/」ディレクトリ以下を、「gzip」で圧縮した「archive.tar.gz」にまとめます。

# -zオプションを使う例
tar -zcvf archive.tar.gz data/

# -aオプションを使う例
tar -acvf archive.tar.gz data/

なお、ファイルを個別に「gzip」コマンドで圧縮・伸張することもできます。

「.tar.bz2」を作成する(bzip2で圧縮)

「tarアーカイブ」を「bzip2」で圧縮する場合は、次のように「-jcvf」オプションを用います。通常、拡張子は「.tar.bz2」を用います。「gzip」より処理に時間はかかりますが、より小さなファイルに圧縮できます。

tar -jcvf <名前>.tar.bz2 <ファイルやディレクトリ> […]

次のように、「-j」の代わりに、アーカイブファイル名の末尾から自動で圧縮プログラムを決定する「-a」オプションを使うこともできます。ファイル名の末尾が「.bz2」の場合、bzip2によって圧縮されます。

tar -acvf <名前>.tar.bz2 <ファイルやディレクトリ> […]

次の例は、「data/」ディレクトリ以下を、「bzip2」で圧縮した「archive.tar.bz2」にまとめます。

# -zオプションを使う例
tar -jcvf archive.tar.bz2 data/

# -aオプションを使う例
tar -acvf archive.tar.bz2 data/

なお、ファイルを個別に「bzip2」コマンドで圧縮・伸張することもできます。

「.tar.xz」を作成する(xzで圧縮)

「tarアーカイブ」を「xz」で圧縮する場合は、次のように「-Jcvf」オプションを用います。ただし、バージョン1.22未満のtarは対応していません。通常、拡張子は「.tar.xz」を用います。「bzip2」よりさらに高い圧縮率を誇ります。ただし圧縮にはさらに時間がかかります。伸張には「gzip」より時間はかかるものの、「bzip2」よりは短い時間で済む傾向にあります。

tar -Jcvf <名前>.tar.xz <ファイルやディレクトリ> […]

次のように、「-J」の代わりに、アーカイブファイル名の末尾から自動で圧縮プログラムを決定する「-a」オプションを使うこともできます。ファイル名の末尾が「.xz」の場合、xzによって圧縮されます。

tar -acvf <名前>.tar.xz <ファイルやディレクトリ> […]

次の例は、「data/」ディレクトリ以下を、「xz」で圧縮した「archive.tar.xz」にまとめます。

# -zオプションを使う例
tar -Jcvf archive.tar.xz data/

# -aオプションを使う例
tar -acvf archive.tar.xz data/

なお、ファイルを個別に「xz」コマンドで圧縮・伸張することもできます。

tarアーカイブの展開

tarアーカイブの展開は、次のように実行します。

tar -xvf <tarアーカイブファイル名> [-C <展開先パス>]

tarアーカイブファイルが圧縮されている場合は自動で圧縮方式が認識され、伸張・展開されます。よって、以下のようにすべて「-xvf」と指定するだけで展開可能です。

tar -xvf archive.tar
tar -xvf archive.tar.gz
tar -xvf archive.tar.bz2
tar -xvf archive.tar.xz

-z」「-j」「ーJ」を指定することもできますが、間違った圧縮方式を指定して展開しようとした場合はエラーとなります。

オプションの「-」は省略可能

このページでは、tarコマンドのオプションに「」を付けましたが、他の多くのコマンドと異なり省略が可能です。たとえば、以下のように実行します。

tar xvf archive.tar.xz

関連記事


tarの「自動圧縮」オプション「a」が意外に便利!
tarコマンドで圧縮する時、圧縮方式にあわせて「z」(gzipで圧縮)、「j」(bzip2で圧縮)、「J」(xzで圧縮)などのオプションを使い分けるのは、意外と面倒です。また、「j」と「J」を間違えて「.tar.bz2」という名前なのに「x...

tarコマンドで「一部のファイルやディレクトリを除外」したい!どうすればいい?
tarコマンドを使って「一部のファイルやディレクトリを除外」してアーカイブファイルの作成と展開を行う方法を、例を用いて解説します。 一部のファイルを除外してtarアーカイブを作成する tarコマンドに「--exclude パターン」を指...

Linuxテクニック
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました