This post is an extension to a three years old post about working with compressed files in Linux in which the explanation about .xz file extension missing. In this article, I go through how to compress/decompress LZMA/LZMA2 files in Linux.
LZMA/LZMA2 compression algorithms usually identifiable by the .xz extension. In Linux several tools are available to support .xz files. The most famous one is tar. tar indeed is a multi-purpose tool that supports different compression algorithms including gzip, bzip2, LZMA, etc.
To be able to work with .xz files however, you first need to install xz-utils.
In Ubuntu you can install using apt command.
$ sudo apt install xz-utils
To create a .xz file use the tar command like this,
$ tar -cvJf xz_file_name.tar.xz file_names
To extract contents of a .xz file run,
$ tar -xvJf xz_file_name.tar.xz
Besides tar you may want to use xz command. Usage is identical except xz command by default does not support .tar.xz. It supports only .xz extension.
To compress,
$ xz -zv file_name
The above command create a file_name.xz file.
For extraction,
$ xz -d file_name.tar.xz
We can also combine xz and tar commands together to handle .tar.xz files.
To extract a .tar.xz file,
$ xz -dc tar_xz_file_name.tar.xz | tar x
To create a .tar.xz file,
$ tar -cf tar_file_name.tar file_names | xz - > tar_xz_file_name.tar.xz
Keep in mind that the above command creates two files, one is .tar and another is .tar.xz. So don’t get confused 🙂


