xzコマンドとtarコマンドを利用してファイル、ディレクトリの圧縮する手順を以下に記します。
xz形式の展開(解凍)は「tar.xz形式ファイルを展開する
」を参照してください。
xzコマンドを使用して1つのファイルを圧縮してみます。
構文は以下のようになります。
xz ファイル名
実際にxzコマンドを実行してみます。
$ ls -l data.txt.org -rw-rw-r-- 1 sakura sakura 2700 11月 20 20:20 data.txt.org $ xz data.txt $ ls -l data.txt ls: data.txt: そのようなファイルやディレクトリはありません $ ls -l data.txt.xz -rw-rw-r-- 1 sakura sakura 112 11月 20 20:21 data.txt.xz
オプション-vを使用するとメッセージが表示されます。
$ xz -v data.txt data.txt (1/1) 100.0 % 112 B / 2,700 B = 0.041
圧縮すると圧縮前のファイルが無くなります。
複数ファイルやディレクトリ配下のように複数のファイルをxzで圧縮する場合は、tarにより複数ファイルを1つにしてxzによって圧縮することになります。
以下に実際に操作例を記します。
$ ls -l data*.txt -rw-rw-r-- 1 sakura sakura 2700 11月 20 20:35 data1.txt -rw-rw-r-- 1 sakura sakura 2700 11月 20 20:32 data2.txt
$ tar cvf data.tar data*.txt data1.txt data2.txt
$ ls -l data.tar -rw-rw-r-- 1 sakura sakura 10240 11月 20 20:37 data.tar
$ xz -v data.tar data.tar (1/1) 100.0 % 224 B / 10.0 KiB = 0.022
$ ls -l data.tar.xz -rw-rw-r-- 1 sakura sakura 224 11月 20 20:37 data.tar.xz
ディレクトリ配下をtar.xz形式に圧縮したい場合は以下の操作になります。 実際に試したディレクトリは以下のような構成になっています。
$ tree wk2 wk2 |-- a | `-- data1.txt `-- b `-- data2.txt 2 directories, 2 files
$ tar cvf data.tar wk2/ wk2/ wk2/b/ wk2/b/data2.txt wk2/a/ wk2/a/data1.txt
$ xz -v data.tar data.tar (1/1) 100.0 % 264 B / 10.0 KiB = 0.026
以下の構文でtar.xzファイルを作成することができます。
GNU tar 1.22からxz形式をサポートしています。
tar Jcvf 圧縮ファイル名 ディレクトリor複数ファイル
$ tar Jcvf data.tar.xz data*.txt data1.txt data2.txt $ ls data.tar.xz data.tar.xz
$ tar Jcvf data.tar.xz wk2 wk2/ wk2/b/ wk2/b/data2.txt wk2/a/ wk2/a/data1.txt $ ls data.tar.xz data.tar.xz