前言

tar 命令本身支持直接使用 -J 参数来创建.tar.xz类型的文件,但是它似乎并不支持多线程压缩,在压缩大量内容时特别慢。

解决方案

我们可以通过 tar + xz + 管道 的方式绕开这一限制。
tar -cvf - <压缩目标> | xz -T 0 -c > <压缩包名>.tar.xz
比如
tar -cvf - my_folder/ | xz -T 0 -c > my_folder.tar.xz

-T 后面跟上的参数是要使用的线程数量,0 代表尽可能多的使用 CPU 线程。