Linuxでファイルを圧縮する方法にはさまざまな手段がありますが、その中でも高い圧縮率を誇るのが「xz」コマンドです。gzipやbzip2と比べても優れた圧縮性能を持ち、大きなログファイルやバックアップデータの保存に最適です。この記事では、xzコマンドの基本的な使い方から、便利なオプション、よくあるエラーとその対処法まで、丁寧に解説します。Linux初心者から中級者まで、xzコマンドをもっと使いこなしたい方はぜひ最後まで読んでみてください。
xzコマンドとは?
xzは、LZMA(Lempel-Ziv-Markov chain algorithm)という圧縮アルゴリズムをベースにした圧縮ツールで、GNU/Linux環境で広く使われています。.xzという拡張子を持ち、従来のgzip(.gz)やbzip2(.bz2)よりも圧縮率が高いのが特徴です。主に以下のような場面で使われます。
- 大容量のログファイルやデータを圧縮保存
- ソースコード配布時のパッケージ圧縮(例:
.tar.xz) - ディスク容量を節約したい場合
xzは圧縮率重視である反面、圧縮・解凍に時間がかかることもあるため、用途に応じた使い分けが重要です。
基本的な使い方
xzの基本的な使い方は非常にシンプルです。まずは基本コマンドを見てみましょう。
xz ファイル名
このコマンドで、指定したファイルを圧縮します。たとえば、sample.logを圧縮する場合は次のように実行します。
xz sample.log
実行後、sample.logは自動的にsample.log.xzというファイルに変わり、元のファイルは削除されます。元のファイルを残したい場合は、-kオプションを使います。
xz -k sample.log
展開(解凍)の方法
圧縮された.xzファイルを元に戻すには、-dまたは--decompressオプションを使用します。
bashコピーする編集するxz -d sample.log.xz
これにより、sample.log.xzはsample.logに戻り、.xzファイルは削除されます。こちらも元の.xzファイルを残したい場合は-kオプションを使いましょう。
xz -dk sample.log.xz
また、unxzコマンドでも同様の操作ができます。
unxz sample.log.xz
これはxz -dと同じ動作をします。
よく使うオプション一覧
xzはさまざまなオプションを持っており、使いこなすことで効率よく作業できます。よく使うオプションを紹介します。
| オプション | 説明 |
|---|---|
-k | 元のファイルを保持 |
-d | 解凍(decompress) |
-v | 詳細情報を表示(verbose) |
-z | 圧縮(compress) 明示的に指定したい場合 |
-T0 | マルチスレッドで圧縮(CPUコア自動検出) |
-9 | 最大圧縮レベル(圧縮に時間がかかる) |
-t | 圧縮ファイルの整合性チェック |
たとえば、sample.logを最大圧縮で、元ファイルを残しながらマルチスレッドで圧縮したい場合は以下のようになります。
xz -9kTv sample.log
tarとの組み合わせ:.tar.xzを作る方法
xzは単体ファイルの圧縮に使われますが、複数のファイルやディレクトリをまとめて圧縮するにはtarと組み合わせるのが一般的です。
圧縮する場合
tar -cJf archive.tar.xz ディレクトリ名
-c:アーカイブ作成-J:xzで圧縮-f:ファイル名指定
たとえば、projectフォルダを.tar.xzにしたいときは以下のようにします。
tar -cJf project.tar.xz project/
解凍する場合
tar -xJf archive.tar.xz
圧縮レベルとパフォーマンスの違い
xzには圧縮レベルが0~9まであります。デフォルトは6ですが、以下のような違いがあります。
-0:圧縮は高速だが圧縮率は低い-9:圧縮率は最高だが、処理時間が長い
ファイルの性質や目的によって使い分けましょう。ログのバックアップなど、圧縮率重視なら-9、一時的な圧縮や送信用なら-1や-3でも十分な場合があります。
圧縮ファイルの整合性を確認する
xzで圧縮したファイルが壊れていないかを確認するには、-tオプションを使います。
xz -t sample.log.xz
問題なければ何も出力されず、壊れていればエラーが表示されます。バックアップ用途では定期的なチェックをおすすめします。
エラー例と対処法
エラー:xz: command not found
xzがインストールされていない場合に表示されます。以下のようにインストールしましょう。
- Debian/Ubuntu系:
sudo apt install xz-utils
- Red Hat/CentOS系:
sudo yum install xz
エラー:Cannot allocate memory
高圧縮レベルや大きなファイルで圧縮すると、メモリ不足になることがあります。-0や-3など低めの圧縮レベルに下げるか、マルチスレッドを無効にして対処します。
まとめ
xzコマンドは、高い圧縮率とシンプルな操作性を兼ね備えた便利なツールです。ログファイルの圧縮やアーカイブの圧縮・解凍において非常に役立ちます。gzipやbzip2よりも高効率で圧縮したい方には特におすすめです。
使い方を覚えれば、日常的なファイル整理から大規模なデータ処理まで幅広く対応できるようになります。ぜひ本記事を参考に、xzコマンドを活用してみてください。
