xz 是 Linux/Unix 系统中一款高压缩比的现代化压缩工具 ,采用 LZMA2 压缩算法,压缩率通常优于 gzip 和 bzip2,对应的压缩文件后缀为 .xz,配套解压工具为 unxz,同时 xz -d 与 unxz 功能完全等价。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
核心功能
- 压缩单个文件为
.xz格式,默认删除原文件。 - 支持多线程压缩(适合多核 CPU)、不同压缩级别、保留原文件等。
- 可直接解压
.xz文件,也能处理.tar.xz格式(需结合tar)。
基本语法
bash
# 压缩文件
xz [选项] 文件名
# 解压文件(三种等价方式)
unxz [选项] 文件名.xz
xz -d [选项] 文件名.xz
xz --decompress [选项] 文件名.xz
常用选项
| 选项 | 作用 |
|---|---|
-d/--decompress |
解压模式,等同于 unxz |
-k/--keep |
压缩/解压时保留原文件(默认删除原文件) |
-f/--force |
强制覆盖已存在的目标文件 |
-v/--verbose |
显示压缩/解压的详细信息(大小、压缩比、进度等) |
-0 ~ -9 |
设置压缩级别,-0 最快、压缩率最低;-9 最慢、压缩率最高,默认 -6 |
-T/--threads=数字 |
指定压缩线程数,例如 -T4 表示使用4线程,适合多核CPU |
-c/--stdout |
将压缩/解压内容输出到标准输出,不修改原文件 |
典型用法
一、 压缩操作
-
基础压缩
压缩单个文件,生成
.xz压缩包,原文件被删除:bashxz test.log # 执行后生成 test.log.xz,test.log 被删除 -
保留原文件压缩
使用
-k选项,压缩后原文件保留:bashxz -k large_database.sql # 生成 large_database.sql.xz,原文件保留 -
多线程高压缩比压缩
针对大文件,用
-9拉满压缩率,-T4启用4线程加速:bashxz -9 -T4 -k backup.tar # 生成 backup.tar.xz,多线程压缩效率更高 -
压缩内容重定向输出
用
-c自定义压缩包名称,同时保留原文件:bashxz -c data.csv > custom_data.csv.xz
二、 解压操作
-
基础解压
三种方式效果一致,默认删除原压缩包:
bashunxz test.log.xz # 或 xz -d test.log.xz # 或 xz --decompress test.log.xz # 执行后生成 test.log,test.log.xz 被删除 -
保留压缩包解压
加上
-k选项,解压后.xz文件不删除:bashunxz -k test.log.xz # 或 xz -dk test.log.xz -
批量解压
一次性解压当前目录下所有
.xz文件:bashunxz *.xz -
查看解压内容(不生成文件)
用
-c直接在终端打印解压后的内容:bashxz -dc config.conf.xz
注意事项
xz只能压缩单个文件 ,无法直接压缩目录。压缩目录需先通过tar打包,再用xz压缩,最终生成.tar.xz格式文件。- 解压
.tar.xz文件推荐用tar一步完成:tar -Jxvf filename.tar.xz(-J代表xz格式)。 xz压缩速度比gzip、bzip2更慢,但压缩率更高,适合对存储空间敏感的场景(如备份大文件)。- 老版本系统可能未预装
xz,可通过yum install xz(CentOS)或apt install xz-utils(Ubuntu)安装。