linux中的xz命令是一款基于LZMA2压缩算法的高性能文件压缩与解压工具,它的核心优势是拥有比gzip、bzip2更高的压缩率,能够在相同文件内容下生成体积更小的压缩包,同时支持多核并行处理提升压缩解压速度,是linux系统中处理大文件压缩的常用工具之一。

xz命令的基本功能
xz命令主要用于对单个文件进行压缩和解压操作,默认情况下压缩后会删除原文件,生成后缀为.xz的压缩文件。它支持多种压缩等级调节,也支持对压缩包进行完整性校验,避免压缩文件损坏导致无法解压的问题。
常用参数说明
以下是xz命令最常用的参数,用户可以根据实际需求选择使用:
- -z:执行压缩操作,是默认操作,可省略
- -d:执行解压操作,等同于unxz命令
- -k:压缩或解压时保留原文件,不会删除原始文件
- -0到-9:设置压缩等级,默认是-6,等级越高压缩率越高但速度越慢
- -T 数字:指定并行处理的线程数,提升多核CPU下的处理速度
- -l:查看压缩文件的详细信息,比如压缩率、原始文件大小等
- -t:测试压缩文件的完整性,检查是否损坏
常见使用场景示例
压缩单个文件
将当前目录下的test.txt文件压缩为test.txt.xz,默认删除原文件:
# 压缩test.txt,生成test.txt.xz,删除原文件 xz test.txt # 压缩时保留原文件,添加-k参数 xz -k test.txt
解压.xz文件
将test.txt.xz解压为test.txt,默认删除压缩包:
# 解压test.txt.xz,生成test.txt,删除压缩包 xz -d test.txt.xz # 解压时保留压缩包,添加-k参数 xz -dk test.txt.xz
设置压缩等级
使用最高压缩等级-9压缩大文件,同时开启4个线程提升速度:
# 最高等级压缩,4线程并行,保留原文件 xz -9 -T 4 -k large_file.iso
查看压缩文件信息
查看test.txt.xz的详细信息:
xz -l test.txt.xz
xz与其他压缩命令的对比
为了更直观了解xz的特点,我们将它和linux常用的gzip、bzip2做对比:
| 压缩工具 | 压缩率 | 压缩速度 | 解压速度 | 默认后缀 |
|---|---|---|---|---|
| gzip | 较低 | 快 | 快 | .gz |
| bzip2 | 中等 | 较慢 | 中等 | .bz2 |
| xz | 最高 | 慢 | 较慢 | .xz |
注意事项
首先,xz命令默认只能压缩单个文件,无法直接压缩目录,如果需要压缩目录,需要先使用tar命令打包目录,再用xz压缩,比如:
# 打包并压缩目录 tar -cf - test_dir | xz -z -k -T 4 > test_dir.tar.xz # 解压tar.xz文件 xz -d test_dir.tar.xz && tar -xf test_dir.tar
其次,xz的压缩等级越高,消耗的内存越多,压缩大文件时如果内存不足,建议降低压缩等级避免进程被系统终止。另外,xz的压缩率优势在大型文件上更明显,小文件使用xz压缩的收益较低,反而会增加处理时间。