【Linux】tarコマンドでファイルを圧縮・解凍する方法

【Linux】tarコマンドでファイルを圧縮・解凍する方法

tarコマンドでファイルを圧縮・解凍(展開)する方法を紹介します。gzip圧縮するにはzcvfオプションをコマンドに指定し、解凍するにはxvfオプションを指定します。

tarコマンドでgzip圧縮するにはzcvfオプションを用います。
さらに圧縮率の高いbzip2はjcvfオプション、xzはJcvfオプションを指定します。
解凍して展開する場合は、xvfオプションを指定します。
それぞれvオプションは該当ファイル・ディレクトリ名の表示に使用し、指定は任意です。

gzip圧縮する(tar.gz)

# ファイルを圧縮
tar -zcvf archive.tar.gz sample_file1
# ディレクトリを圧縮
tar -zcvf archive.tar.gz sample_dir1 
# 複数ファイル・ディレクトを圧縮
tar -zcvf arcehive.tar.gz sample_file1 sample_file2 sample_dir1

#  vの指定は任意(対象ファイルを出力したい場合に指定)
#  archive.tar.gz:圧縮後ファイル名(tar.gz)
#  sample_file1,2:圧縮対象ファイル名
#  sample_dir1:圧縮対象ディレクトリ名

bzip2圧縮する(tar.bz2)

gzipより強力な圧縮を実施します。

tar -jcvf archive.tar.bz2 sample.1G.dummy

圧縮する(tar.xz)

gzipより強力な圧縮を実施します。

tar -Jcvf archive.tar.xz sample.1G.dummy

各圧縮率の比較

以下の通り、1Gのダミーファイルでそれぞれ圧縮率を確認しました。

# ダミーファイル作成
$ dd if=/dev/zero of=sample.1G.dummy bs=1M count=1000

# 圧縮
$ tar -zcvf archive.tar.gz sample.1G.dummy
$ tar -jcvf archive.tar.bz2 sample.1G.dummy
$ tar -Jcvf archive.tar.xz sample.1G.dummy

# 圧縮率比較
$ ls -l
total 1025156
-rw-r--r-- 1 root root        841 Jun  7 12:25 archive.tar.bz2
-rw-r--r-- 1 root root    1017728 Jun  7 12:25 archive.tar.gz
-rw-r--r-- 1 root root     152716 Jun  7 12:31 archive.tar.xz
-rw-r--r-- 1 root root 1048576000 Jun  7 12:24 sample.1G.dummy

今回はbzip2が最も圧縮されましたが、 圧縮するファイルによって結果は異なると思われます。

解凍する

# ファイルを解凍
tar -xvf archive.tar.gz

# vの指定は任意(対象ファイルを出力したい場合に指定)
#  archive.tar.gz:解凍対象ファイル名(tar.gz)

オプションの意味

オプション意味
zgzip圧縮
jbzip2圧縮
Jxz圧縮
cアーカイブを作成
xアーカイブを展開(解凍)
v対象のディレクトリ・ファイル名を出力
fアーカイブファイル名を指定

余談

オプションのハイフンはあってもなくてもよい。


tarファイルの中身をしたい場合はこちらのリンク を参照してください。

以上です。
よいITライフを。