首页/系统/Linux 运维命令速查/xz 压缩与解压(.xz)
文件与目录76 条

xz 压缩与解压(.xz)

压缩率最高的通用工具(LZMA2),内核与发行版镜像的标配格式;代价是 CPU 与内存开销大。

Linux 运维命令速查系统更新于 2026-10-13

xz 是什么

xz 使用 LZMA2 算法,在通用压缩工具中压缩率最高,内核源码包与发行版镜像大量使用这种格式。代价是压缩速度慢、内存占用大,属于典型的用计算资源换存储空间。

基本信息

用途压缩与解压 .xz 文件
语法xz 加压缩、解压、列表、测试等选项
联动打包工具的对应选项即调用它
特点压缩率最高,CPU 与内存开销大

典型使用场景

  • 长期归档:数据长期保存且访问不频繁时优先压缩率
  • 发行版与内核包:上游广泛使用,解压端通常已内置
  • 只校验不解压:确认压缩包完整性
  • 冷备压缩:备份文件用高档位压缩,节省长期存储成本
  • 评估压缩率:对比不同算法的体积与耗时

常用示例

常用示例
xz -k -9 -T0 data.sql          # 保留原文件,最高档,多线程
xz -d data.sql.xz              # 解压
xz -l data.sql.xz              # 查看压缩率与完整性信息
xz -t data.sql.xz              # 只做完整性测试
tar -cJf data.tar.xz dir/      # 打包并压缩

参数对照

参数作用注意
压缩默认行为会删除源文件
-d解压同样会删除压缩包
-k保留源文件脚本里应当加上
-9最高档内存消耗显著增加
-T0使用全部核心多块文件效果更明显
-t完整性测试不产生输出文件
最高档压缩单个数据流的内存需求显著增加,内存较小的机器批量压缩时建议降到中高档位。
默认压缩成功后删除源文件,脚本里务必加上保留选项,否则源数据会消失。
多线程只对多块或大文件有明显提速,小文件反而增加线程调度开销。
压缩端与解压端版本尽量接近,跨版本传递大包前先在测试环境验证一次。
归档前先确认数据是否需要频繁随机读取,需要时压缩反而会增加每次访问的成本。

易错点

  • 忘记加保留选项会让压缩成功后源文件被删除,备份流程里尤其危险
  • 最高档对内存要求高,小内存机器批量压缩容易触发内存不足
  • 旧版解压端可能无法处理新过滤器链,报错时先升级解压端而不是重压
  • 多线程对小文件没有收益,反而增加调度开销,应按文件规模决定参数

数据来源与参考

  • man 1 xz(XZ Utils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌