Linux 命令:xz

xz 是 Linux/Unix 系统中一款高压缩比的现代化压缩工具 ,采用 LZMA2 压缩算法,压缩率通常优于 gzipbzip2,对应的压缩文件后缀为 .xz,配套解压工具为 unxz,同时 xz -dunxz 功能完全等价。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

核心功能

  • 压缩单个文件为 .xz 格式,默认删除原文件。
  • 支持多线程压缩(适合多核 CPU)、不同压缩级别、保留原文件等。
  • 可直接解压 .xz 文件,也能处理 .tar.xz 格式(需结合 tar)。

基本语法

bash 复制代码
# 压缩文件
xz [选项] 文件名

# 解压文件(三种等价方式)
unxz [选项] 文件名.xz
xz -d [选项] 文件名.xz
xz --decompress [选项] 文件名.xz

常用选项

选项 作用
-d/--decompress 解压模式,等同于 unxz
-k/--keep 压缩/解压时保留原文件(默认删除原文件)
-f/--force 强制覆盖已存在的目标文件
-v/--verbose 显示压缩/解压的详细信息(大小、压缩比、进度等)
-0 ~ -9 设置压缩级别,-0 最快、压缩率最低;-9 最慢、压缩率最高,默认 -6
-T/--threads=数字 指定压缩线程数,例如 -T4 表示使用4线程,适合多核CPU
-c/--stdout 将压缩/解压内容输出到标准输出,不修改原文件

典型用法

一、 压缩操作
  1. 基础压缩

    压缩单个文件,生成 .xz 压缩包,原文件被删除:

    bash 复制代码
    xz test.log
    # 执行后生成 test.log.xz,test.log 被删除
  2. 保留原文件压缩

    使用 -k 选项,压缩后原文件保留:

    bash 复制代码
    xz -k large_database.sql
    # 生成 large_database.sql.xz,原文件保留
  3. 多线程高压缩比压缩

    针对大文件,用 -9 拉满压缩率,-T4 启用4线程加速:

    bash 复制代码
    xz -9 -T4 -k backup.tar
    # 生成 backup.tar.xz,多线程压缩效率更高
  4. 压缩内容重定向输出

    -c 自定义压缩包名称,同时保留原文件:

    bash 复制代码
    xz -c data.csv > custom_data.csv.xz
二、 解压操作
  1. 基础解压

    三种方式效果一致,默认删除原压缩包:

    bash 复制代码
    unxz test.log.xz
    # 或
    xz -d test.log.xz
    # 或
    xz --decompress test.log.xz
    # 执行后生成 test.log,test.log.xz 被删除
  2. 保留压缩包解压

    加上 -k 选项,解压后 .xz 文件不删除:

    bash 复制代码
    unxz -k test.log.xz
    # 或
    xz -dk test.log.xz
  3. 批量解压

    一次性解压当前目录下所有 .xz 文件:

    bash 复制代码
    unxz *.xz
  4. 查看解压内容(不生成文件)

    -c 直接在终端打印解压后的内容:

    bash 复制代码
    xz -dc config.conf.xz

注意事项

  1. xz 只能压缩单个文件 ,无法直接压缩目录。压缩目录需先通过 tar 打包,再用 xz 压缩,最终生成 .tar.xz 格式文件。
  2. 解压 .tar.xz 文件推荐用 tar 一步完成:tar -Jxvf filename.tar.xz-J 代表 xz 格式)。
  3. xz 压缩速度比 gzipbzip2 更慢,但压缩率更高,适合对存储空间敏感的场景(如备份大文件)。
  4. 老版本系统可能未预装 xz,可通过 yum install xz(CentOS)或 apt install xz-utils(Ubuntu)安装。
相关推荐
A小辣椒20 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式