xz
是 Linux 系统中一个高效的压缩和解压缩工具,用于处理 .xz
或 .lzma
格式的压缩文件。它基于 LZMA/LZMA2 压缩算法,通常能提供比传统工具(如 gzip
、bzip2
)更高的压缩率,适合处理大文件或需要节省空间的场景。
压缩文件
xz filename # 压缩文件,生成 filename.xz(原文件默认删除)
xz -k filename # 保留原文件(-k 或 --keep)
xz -1到-9 filename # 设置压缩级别(1最快压缩,9最高压缩率,默认6)
解压文件
xz -d filename.xz # 解压 .xz 文件(等价于 unxz filename.xz)
xz -dk filename.xz # 解压并保留原压缩文件
查看压缩文件内容
xzcat filename.xz # 不解压直接查看内容(类似 zcat)
xzless filename.xz # 分页查看内容
多文件操作
xz file1 file2 # 同时压缩多个文件(生成 file1.xz 和 file2.xz)
选项 | 说明 |
---|---|
-d |
解压模式 |
-k |
保留原文件 |
-T |
设置线程数(如 -T0 使用所有CPU核心) |
-v |
显示详细过程 |
-l |
列出压缩文件信息(如 xz -l filename.xz ) |
-z |
强制压缩(默认行为,通常可省略) |
压缩日志文件
xz -9k /var/log/syslog # 最高压缩率保留原文件
解压并提取内容
xz -dc archive.xz > output.txt # 解压到标准输出并重定向
与 tar 结合使用
tar -cvf - directory/ | xz > archive.tar.xz # 打包目录并压缩
tar -xvf archive.tar.xz # 解压并解包
-9
)会占用更多CPU和时间。-k
时,原文件会被删除。unxz
是 xz -d
的别名。xzdec
是轻量级解压工具(仅解压,无压缩功能)。工具 | 压缩速度 | 压缩率 | 常见用途 |
---|---|---|---|
gzip |
快 | 一般 | 日志、文本 |
bzip2 |
慢 | 较高 | 中等大小文件 |
xz |
最慢 | 最高 | 大文件/归档 |
如果需要进一步优化,可以尝试 zstd
(速度与压缩率平衡的新工具)。