Linux命令-xz(高压缩比压缩工具)

📅 2026/8/25 19:02:16
Linux命令-xz(高压缩比压缩工具)
Linux命令-xz高压缩比压缩工具 命令简介 语法格式⚙️ 常用选项 实战示例1. 基本压缩与解压2. 不同压缩级别3. 配合 tar 使用.tar.xz 格式4. 标准输入输出管道操作5. 多线程压缩与内存控制6. 批量压缩/解压7. 实用技巧⚠️ 注意事项 相关命令 总结快速参考xz是基于 LZMA2 算法的高压缩比压缩工具压缩率远超 gzip 和 bzip2广泛用于源码包分发.tar.xz和系统日志压缩。 命令简介xz使用 LZMA2Lempel-Ziv-Markov chain Algorithm压缩算法提供业界领先的压缩比。虽然压缩速度较慢但解压速度尚可适合需要长期存储或网络传输的场景。格式说明xz生成.xz后缀文件。tar命令通过-J大写选项支持.tar.xz格式。三种压缩工具对比工具后缀算法压缩比压缩速度解压速度gzip.gzDEFLATE中等快快bzip2.bz2Burrows-Wheeler较高较慢慢xz.xzLZMA2最高慢中等 语法格式xz[选项][文件...]# 压缩文件默认删除原文件xz 文件名# 解压文件xz-d文件名.xz# 或unxz 文件名.xz# 保留原文件的压缩xz-k文件名⚙️ 常用选项选项说明-z压缩模式默认-d/--decompress解压模式-k/--keep保留原文件不删除-t/--test测试压缩文件完整性-l/--list显示压缩文件信息-0~-9压缩级别0最快6默认9最优-e/--extreme极限压缩模式更慢但压缩率更高-T N/--threadsN使用 N 个线程并行压缩-T 0使用所有可用 CPU 核心-c/--stdout输出到标准输出不修改文件-f/--force强制覆盖已有文件-q/--quiet抑制警告信息-v/--verbose显示详细信息--memlimit值限制内存使用量-s/--suffix后缀指定压缩文件后缀默认 .xz 实战示例1. 基本压缩与解压# 压缩单个文件原文件被删除生成 file.txt.xzxz file.txt# 解压文件.xz 文件被删除xz-dfile.txt.xz# 等效命令unxz file.txt.xz# 压缩并保留原文件xz-klarge_file.log# 解压并保留压缩文件xz-d-karchive.tar.xz# 测试压缩文件完整性xz-tbackup.tar.xz# 显示压缩文件信息xz-larchive.tar.xz# 输出示例# Strms Blocks Compressed Uncompressed Ratio Check Filename# 1 1 12.5 MiB 45.3 MiB 0.276 CRC64 archive.tar.xz2. 不同压缩级别# 最快压缩压缩比最低xz-0data.csv# 默认压缩级别均衡xz-6data.csv# 最高压缩级别xz-9data.csv# 极限压缩模式比 -9 更极致xz-9edata.csv# 多线程极限压缩xz-9e-T4large_database.sql3. 配合 tar 使用.tar.xz 格式# 创建 .tar.xz 压缩包推荐方式tar-cJfarchive.tar.xz /path/to/directory/# -J 调用 xz 压缩# 解压 .tar.xz 文件tar-xJfarchive.tar.xz# 列出 .tar.xz 内容不解压tar-tJfarchive.tar.xz# 使用 xz 多线程配合 tartar-cf- /big/dir/|xz-9e-T4backup.tar.xz# 从 .tar.xz 中提取单个文件tar-xJfarchive.tar.xz path/to/specific/file4. 标准输入输出管道操作# 压缩 stdin 并保存catlargefile.txt|xzlargefile.txt.xz# 从 stdin 解压xz-dlargefile.txt.xzlargefile.txt# 压缩 MySQL 数据库备份并输出到文件mysqldump-uroot-pdatabase_name|xz-9backup.sql.xz# 解压并导入数据库xz-dcbackup.sql.xz|mysql-uroot-pdatabase_name# 压缩日志文件流tail-f/var/log/syslog|xz-csyslog_live.xz5. 多线程压缩与内存控制# 使用 4 个线程并行压缩xz-9-T4huge_file.log# 使用所有 CPU 核心xz-9-T0bigdata.csv# 限制内存使用压缩大文件时防止 OOMxz-9--memlimit512MiB large_file.tar# 限制解压内存使用xz-d--memlimit256MiB compressed.xz6. 批量压缩/解压# 批量压缩目录下所有 .log 文件forfin*.log;doxz-9$fdone# 批量解压所有 .xz 文件forfin*.xz;dounxz$fdone# 使用 find 批量压缩find/var/log-name*.log-mtime30-execxz-9{}\;# 批量解压并验证完整性forfin*.tar.xz;doxz-t$fecho$f: OK||echo$f: CORRUPTdone7. 实用技巧# 查看压缩前后大小对比xz-vfile.txt21|grep%# 压缩到指定目录xz-cfile.txt/backup/file.txt.xz# 零压缩仅存储xz-0file.txt# 解压到标准输出查看不产生文件xz-dcarchive.tar.xz|tartf -# 给压缩文件添加 .xz 以外的后缀xz-z--suffix.lzma file.txt⚠️ 注意事项⚠️操作注意以下场景需要特别留意。# 注意xz 默认删除原文件xz important_file.txt# 原文件 important_file.txt 被删除# 解决使用 -k 保留原文件xz-kimportant_file.txt# 注意压缩大文件时内存占用高xz-910GB_file.bin# LZMA2 编码器默认使用大量内存# 解决使用 --memlimit 限制内存xz-9--memlimit512MiB 10GB_file.bin# 注意管道中压缩无法使用 -kcatfile|xzfile.xz# 正确xz-cfilefile.xz# 推荐保留原文件选择建议日常快速压缩优先gzip速度快源码分发/长期归档使用xz压缩比最高中等需求bzip2是折中选择多文件归档始终配合tar使用tar -cJf已有 .gz 包转 .xz使用znew命令 相关命令命令关系与说明unxzxz 解压模式等同xz -dxzcat解压到 stdout等同xz -dcxzless/xzmore分页查看压缩文件内容xzgrep在压缩文件中搜索文本gzipGNU 压缩工具速度优先bzip2Burrows-Wheeler 压缩平衡zstd现代高性能压缩工具速度压缩比tar归档工具-J 选项使用 xzznew将 .Z/.gz 转换为 .xz 格式 总结xz是 Linux 系统中压缩比最高的通用压缩工具.tar.xz 是 Linux 源码包的标准分发格式。虽然压缩速度较慢但凭借出色的压缩比和可接受的解压速度非常适合软件分发和长期归档场景。运维建议日志归档使用xz -9最大化空间节省生产环境使用-T N多线程加速大文件压缩时用--memlimit避免 OOM。日常快速压缩场景优先使用gzip。