ヒトリ歩き

愚痴とかいろいろ書きます

xzコマンドでファイルの圧縮・伸張をする

Node.jsをCentOSにインストールしようとした際に、xzコマンドの存在を知りました。 今後、使うことがあるかないかは分かりませんが、基本的な使い方をまとめます。

xzコマンドとは

gzipやbzip2と同様に、コマンドラインで一般的用途のデータを圧縮ツールです。 複数ファイルをまとめる場合は、tarコマンドと組み合わせる手法が一般的。

圧縮ファイルを伸張する

圧縮ファイルを伸張する場合は、xz -d または unxz を実行する。

xz -dの場合

$ xz -d node-v12.18.0-linux-x64.tar.xz 
$ ls
node-v12.18.0-linux-x64.tar

unxzの場合

$ unxz node-v12.18.0-linux-x64.tar.xz
$ ls
node-v12.18.0-linux-x64.tar

xz -d または unxz だと伸張前のファイルは残らない。 伸張前のファイルも残したい場合、-kオプションをつける。

$ xz -dk node-v12.18.0-linux-x64.tar.xz
$ ls
node-v12.18.0-linux-x64.tar  node-v12.18.0-linux-x64.tar.xz

ファイルを圧縮する

ファイルを圧縮する場合は、xz または xz -z を実行する。

$ xz node-v12.18.0-linux-x64.tar
$ ls
node-v12.18.0-linux-x64.tar.xz

伸張時と同様に圧縮後には圧縮前のファイルは残らない。 ファイルを残す場合は -kオプションが必要になる。

$ xz -k node-v12.18.0-linux-x64.tar
$ ls
node-v12.18.0-linux-x64.tar  node-v12.18.0-linux-x64.tar.xz

まとめ

圧縮・伸張のためのコマンドはいくつかあるが、xzという形式があることを最近知ったので驚いた。 なぜ、今まで見たことがなかったのか不思議ではあるが新しくコマンドを知れたことは良かったと思う。 また、xz形式に出会った際に忘れないようにしておく。