先日、セキュリティホールmemoの方で、xzという圧縮形式を知って、bzip2よりも高圧縮って魅力あるな。と試してみました。
現行のopenSUSE 11.1にはlzmaとして入っていますので、
$ lzma -z9 target.file
などとしてやればtarget.file.lzmaと、圧縮したファイルができあがります。
複数のファイルをまとめてtarと一緒に使う場合は以下のような感じでしょうか。
$ tar -cf hoge.tar.xz --lzma target
拡張子、xzとlzmaの2種類がありますが、従来から使われてきたのがlzmaで今後はxzを推しているようです。コマンド自体も新しいバージョンからxzになるみたいですね。
で、使ってみてですが、確かにbzip2より圧縮率はいいです。ただ言われているように時間がかかります。小さなファイルならまだいいのですが、数十MBとかになってくるとかなり待たされます。こちらのページにベンチマーク結果がまとまっていますが、特に圧縮率を重視すると5倍ぐらいかかっています。ただ、解凍の時間は逆にbzip2より速いようですが。
会社のVMwareのイメージファイルをバックアップするのに今はbzip2を使っており、こちらは数十GBあって12時間ぐらいかかっています。これをxzにと考えると1日じゃ終わらない感じですね。それではバックアップできないので、とりあえず今はbzip2を使っていくことになりそうです。マシンのCPUが5倍ぐらい速くなれば考えてもいいかなとは思いますが。