
スポンサーリンク
tarコマンドでgzip圧縮するにはzcvf
オプションを用います。
さらに圧縮率の高いbzip2はjcvf
オプション、xzはJcvf
オプションを指定します。
解凍して展開する場合は、xvf
オプションを指定します。
それぞれv
オプションは該当ファイル・ディレクトリ名の表示に使用し、指定は任意です。
gzip圧縮する(tar.gz)
構文(gzip圧縮)
tar -zcvf [圧縮ファイル名].tar.gz [対象ファイルorディレクトリ]
vの指定は任意で、圧縮ファイルを出力したい場合に指定します。
ファイルを圧縮
以下コマンドでファイルを圧縮します。
tar -zcvf archive.tar.gz sample_file1.txt
コマンドを実行すると圧縮したファイル名が出力されます。(vオプション指定時)
# 実行例$ tar -zcvf archive.tar.gz sample_file1.txtsample_file1.txt# ファイルが作成されたことを確認$ ls -l archive.tar.gz-rw-r--r-- 1 test-user test-user 127 Jul 10 23:35 archive.tar.gz
ディレクトリを圧縮
tar -zcvf archive.tar.gz sample_dir1
コマンドを実行すると圧縮したファイル・ディレクトリ名が出力されます。(vオプション指定時)
# 実行例$ tar -zcvf archive.tar.gz sample_dir1sample_dir1/sample_dir1/sample_file2.txtsample_dir1/sample_file3.txtsample_dir1/sample_file1.txt# ファイルが作成されたことを確認$ ls -l archive.tar.gz-rw-r--r-- 1 test-user test-user 185 Jul 10 23:40 archive.tar.gz
複数(ファイル・ディレクトリ)を圧縮
tar -zcvf archive.tar.gz sample_file1.txt sample_file2.txt sample_dir1
コマンドを実行すると圧縮したファイル・ディレクトリ名が出力されます。(vオプション指定時)
# 実行例$ tar -zcvf archive.tar.gz sample_file1.txt sample_file2.txt sample_dir1sample_file1.txtsample_file2.txtsample_dir1/sample_dir1/sample_file2.txtsample_dir1/sample_file3.txtsample_dir1/sample_file1.txt# ファイルが作成されたことを確認$ ls -l arcehive.tar.gz-rw-r--r-- 1 test-user test-user 215 Jul 10 23:44 arcehive.tar.gz
bzip2で超圧縮する(tar.bz2)
gzipより強力な圧縮を実施します。
構文(bzip2圧縮)
tar -jcvf [圧縮ファイル名].tar.bz2 [対象ファイルorディレクトリ]
ファイルを超圧縮(bzip2)
以下コマンドでファイルを超圧縮します。
tar -jcvf archive.tar.bz2 sample_file1.txt
xzで超圧縮する(tar.xz)
gzipより強力な圧縮を実施します。
構文(xz圧縮)
tar -Jcvf [圧縮ファイル名].tar.xz [対象ファイルorディレクトリ]
ファイルを圧縮(xz)
以下コマンドでファイルを超圧縮します。
tar -Jcvf archive.tar.xz sample_file1.txt
各圧縮率の比較
以下の通り、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 -ltotal 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 [対象ファイル]
vの指定は任意で、解凍ファイルを出力したい場合に指定してください。
ファイルを解凍
以下コマンドでファイルを解凍します。
tar -xvf archive.tar.gz
コマンドを実行すると解凍(展開)したファイル・ディレクトリ名が出力されます。(vオプション指定時)
# 実行結果$ tar -xvf archive.tar.gzsample_file1.txtsample_file2.txtsample_dir1/sample_dir1/sample_file2.txtsample_dir1/sample_file3.txtsample_dir1/sample_file1.txt# 解凍されたファイル・ディレクトリを確認$ ls -l sample_*-rw-r--r-- 1 test-user test-user 0 Jul 10 23:43 sample_file1.txt-rw-r--r-- 1 test-user test-user 0 Jul 10 23:43 sample_file2.txt
sample_dir1:total 0-rw-r--r-- 1 test-user test-user 0 Jul 10 23:39 sample_file1.txt-rw-r--r-- 1 test-user test-user 0 Jul 10 23:39 sample_file2.txt-rw-r--r-- 1 test-user test-user 0 Jul 10 23:39 sample_file3.txt
上記はgzipの例ですが、bzip2
,xz
も同様のコマンドで解凍することができます。
オプションの意味
オプション | 意味 |
---|---|
z | gzip圧縮 |
j | bzip2圧縮 |
J | xz圧縮 |
c | アーカイブを作成 |
x | アーカイブを展開(解凍) |
v | 対象のディレクトリ・ファイル名を出力 |
f | アーカイブファイル名を指定 |
余談
オプションのハイフンはあってもなくてもよいです。
tarファイルの中身をしたい場合はこちらのリンク を参照してください。
以上で本記事の解説を終わります。
よいITライフを!