このエントリーをはてなブックマークに追加


tar.xz形式にファイルを圧縮する

xzコマンドとtarコマンドを利用してファイル、ディレクトリの圧縮する手順を以下に記します。
xz形式の展開(解凍)は「tar.xz形式ファイルを展開する 」を参照してください。


関連資料・関連記事

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によって圧縮することになります。

tarとxzコマンドを利用して圧縮する

以下に実際に操作例を記します。

  • 対象とするファイルは以下の2つです。
    $ 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コマンドでdata*.txtをdata.tarにします。
    $ tar cvf data.tar data*.txt 
    data1.txt
    data2.txt
  • data.tarが作成されています。
    $ ls -l data.tar 
    -rw-rw-r-- 1 sakura sakura 10240 11月 20 20:37 data.tar
  • xzコマンドでdata.tarを圧縮します。
    $ xz -v data.tar 
    data.tar (1/1)
      100.0 %                    224 B / 10.0 KiB = 0.022                         
  • tar.xzが作成されました。
    $ 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
  1. tarファイルを作成する
    $ tar cvf data.tar wk2/
    wk2/
    wk2/b/
    wk2/b/data2.txt
    wk2/a/
    wk2/a/data1.txt
  2. data.tarが作成されたので、xzで圧縮する
    $ xz -v data.tar
    data.tar (1/1)
      100.0 %                    264 B / 10.0 KiB = 0.026             
  3. data.tar.xzが作成されています。 $ ls -l data.tar.xz
  • rw-rw-r-- 1 sakura sakura 264 11月 20 20:44 data.tar.xz

tarコマンドだけでtar.xz圧縮ファイルを作成する

以下の構文で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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:28:03