xz不能直接压缩目录,需先用tar打包再用xz压缩;推荐用tar -cjf创建.tar.xz归档,支持压缩级别调节、多线程及完整性验证。

先用 tar 打包,再用 xz 压缩
xz 本身不能直接压缩目录,它只处理单个文件。所以归档整个目录必须分两步:先用 tar 把目录打包成一个 .tar 文件,再用 xz 对这个包进行高压缩。
典型命令如下:
- tar -c dir_name | xz -z > dir_name.tar.xz —— 管道方式,不生成中间 .tar 文件
- tar -c dir_name -f dir_name.tar && xz dir_name.tar —— 分步执行,更清晰易调试
一步到位:用 tar 的 -J 选项自动调用 xz
现代 tar 支持内置压缩器,-J 就是专为 xz 设计的选项,等价于 --xz。
常用写法:
- tar -cJf archive.tar.xz dir_name —— 创建高压缩比归档,推荐
- tar -tJf archive.tar.xz —— 查看归档内容(不解压)
- tar -xJf archive.tar.xz —— 解压到当前目录
- tar -xJf archive.tar.xz -C /target/dir —— 指定解压路径
控制压缩强度和保留原文件
xz 默认使用中等压缩级别(-6),但你可以手动调整以平衡速度与体积:
- -0 到 -9:数字越大压缩率越高、耗时越长;-0 最快但压缩弱,-9 最小体积但很慢
- -k:压缩后保留原始 .tar 文件(默认会删掉)
- 组合示例:tar -cJf archive.tar.xz -I 'xz -9 -T0' dir_name —— 用最高压缩级且启用多线程(-T0 表示自动用满 CPU 核心)
验证与查看压缩信息
压缩完成后,可快速确认是否有效:
- xz -l archive.tar.xz —— 显示压缩率、原始大小、CRC 等元数据
- file archive.tar.xz —— 确认文件类型是否为 XZ compressed data
- tar -tJf archive.tar.xz | head -n 10 —— 预览前 10 个文件路径,检查归档完整性











