Linux unxz命令详解

unxz命令 - 用于解压.xz文件的专用工具,是xz -d命令的快捷方式

命令简介

unxz 是一个专门用于解压.xz格式文件的命令。实际上,它是xz --decompress命令的快捷方式或符号链接,两者功能完全相同。

重要关系: unxz file.xz 等同于 xz -d file.xz 等同于 xz --decompress file.xz
  • 作用: 解压.xz格式的压缩文件
  • 文件扩展名: 主要用于 .xz 文件
  • 特点: 使用简单,专门用于解压操作
  • 关联命令: xz, xzcat, lzma

命令语法

# 基本语法
unxz [选项] [文件...]

# 等同于
xz -d [选项] [文件...]
xz --decompress [选项] [文件...]

常用选项

选项 说明
-k, --keep 保留压缩文件(不解压后删除)
-f, --force 强制覆盖输出文件
-t, --test 测试压缩文件的完整性(不解压)
-l, --list 列出.xz文件的详细信息
-v, --verbose 显示详细信息
-q, --quiet 抑制警告信息,静默操作
-d, --decompress 解压(默认操作,unxz通常不需要此选项)
-z, --compress 压缩(unxz不支持此操作)
-T, --threads=N 指定使用的线程数(0=使用所有可用CPU核心)
--format=FORMAT 指定格式(auto, xz, lzma)

基础使用示例

解压单个.xz文件
# 解压文件,默认删除原.xz文件
unxz file.txt.xz

# 解压后得到file.txt,删除file.txt.xz

# 解压并保留原压缩文件
unxz -k archive.tar.xz

# 解压到当前目录,保留archive.tar.xz
解压多个文件
# 解压多个.xz文件
unxz file1.xz file2.xz file3.xz

# 使用通配符解压所有.xz文件
unxz *.xz

# 解压当前目录及子目录下的所有.xz文件(结合find)
find . -name "*.xz" -exec unxz {} \;

# 解压并保留原文件
find . -name "*.xz" -exec unxz -k {} \;
强制覆盖解压
# 当目标文件已存在时,强制覆盖
unxz -f document.xz

# 结合keep选项
unxz -fk backup.xz
显示详细解压信息
# 显示解压过程的详细信息
unxz -v largefile.xz

# 输出示例:
# largefile.xz (1/1)
#   100 %       100.0 MiB / 400.0 MiB = 0.250    10 MiB/s       0:40

# 显示多个文件的解压信息
unxz -v *.xz

高级使用技巧

多线程解压(加速大文件解压)
# 使用4个线程解压
unxz -T4 large_archive.xz

# 使用所有可用的CPU核心
unxz -T0 large_archive.xz

# 多线程解压并保留原文件
unxz -T0 -k bigfile.xz
测试压缩文件完整性
# 测试.xz文件是否完整(不解压)
unxz -t archive.xz

# 测试多个文件
unxz -t *.xz

# 测试并显示详细信息
unxz -tv corrupted.xz
管道解压操作
# 从标准输入读取压缩数据,解压到标准输出
cat compressed.xz | unxz > decompressed.txt

# 解压并直接传递给其他命令处理
unxz -c archive.tar.xz | tar -t

# 下载远程压缩文件并直接解压
curl -s http://example.com/data.xz | unxz > data.txt
注意:使用管道时,-c选项等同于--stdout,将解压数据输出到stdout
查看压缩文件信息(不解压)
# 列出.xz文件的详细信息
unxz -l archive.xz

# 输出示例:
# Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
#     1       1    100.0 MiB   400.0 MiB  0.250  CRC64   archive.xz

# 列出多个文件信息
unxz -l *.xz

# 详细列表
unxz -lv data.xz

解压.tar.xz文件

对于.tar.xz(或.txz)文件,通常需要先解压.xz,再解包.tar。

方法1:分步解压
# 第一步:解压.xz
unxz archive.tar.xz

# 第二步:解包.tar
tar -xf archive.tar

# 或者一步完成(使用管道)
unxz -c archive.tar.xz | tar -xf -
方法2:使用tar命令直接解压(推荐)
# tar命令可以直接处理.tar.xz文件
tar -xJf archive.tar.xz

# 解压到指定目录
tar -xJf archive.tar.xz -C /target/directory

# 查看.tar.xz文件内容
tar -tJf archive.tar.xz
提示:tar的-J选项表示处理.xz压缩的tar文件,这是最方便的方法

unxz vs xz 命令对比

对比项 unxz命令 xz命令
主要功能 专门解压.xz文件 压缩和解压都支持
默认操作 解压(--decompress) 压缩(-z)
命令语法 unxz [选项] [文件.xz...] xz [选项] [文件...]
快捷方式 xz -d的快捷方式 基础命令
常用场景 只需要解压操作时 需要压缩或更复杂操作时
记忆建议 un+压缩格式(类似gunzip, bunzip2) 原始压缩工具命令

常见问题解答

Q: unxz命令不存在怎么办?
# 安装xz-utils包(包含unxz)
# Ubuntu/Debian
sudo apt install xz-utils

# CentOS/RHEL/Fedora
sudo yum install xz
# 或
sudo dnf install xz

# Arch Linux
sudo pacman -S xz
Q: 如何解压后不删除原.xz文件?

使用-k--keep选项:unxz -k file.xz

Q: unxz可以解压.lzma文件吗?

可以,xz工具支持.lzma格式:unxz file.lzma 或指定格式:unxz --format=lzma file.lzma

Q: 解压时显示"文件已存在"错误?
# 使用-f选项强制覆盖
unxz -f existing.xz

# 或先删除/重命名已存在的文件
rm output_file
unxz file.xz

相关命令

  • xz - 完整的xz压缩/解压工具
  • xzcat - 不解压直接显示.xz文件内容
  • gunzip - 解压.gz文件
  • bunzip2 - 解压.bz2文件
  • tar - 打包工具,常与解压工具结合使用
  • lzma - 旧的LZMA压缩工具
命令总结
  • 基本解压: unxz file.xz
  • 保留原文件: unxz -k file.xz
  • 强制覆盖: unxz -f file.xz
  • 测试完整性: unxz -t file.xz
  • 多线程解压: unxz -T4 file.xz
  • 查看信息: unxz -l file.xz