unxz命令

unxz命令 #

unxz命令用于解压缩由xz创建的.xz文件。它将压缩文件还原为原始文件,并默认删除压缩文件。

语法 #

unxz [选项] [文件...]

常用选项 #

选项 描述
-k, --keep 保留原始压缩文件
-f, --force 强制解压缩,即使文件已存在或有多个链接
-c, --stdout, --to-stdout 将结果写入标准输出
-T, --threads=NUM 使用最多NUM个线程(默认为1)
-q, --quiet 抑制警告和通知
-v, --verbose 显示详细信息
-h, --help 显示帮助信息
-V, --version 显示版本信息

常见用法 #

1. 解压缩单个文件 #

unxz file.txt.xz

这将创建file.txt并删除file.txt.xz

2. 解压缩文件并保留原始压缩文件 #

unxz -k file.txt.xz

3. 解压缩多个文件 #

unxz file1.txt.xz file2.txt.xz file3.txt.xz

4. 将解压缩结果输出到标准输出 #

unxz -c file.txt.xz > new_file.txt

或使用xzcat命令:

xzcat file.txt.xz > new_file.txt

5. 使用多线程解压缩 #

unxz -T 4 file.txt.xz

这会使用4个线程进行解压缩。

6. 显示详细信息 #

unxz -v file.txt.xz

输出示例:

file.txt.xz (1/1)
  100 %                                                                        

7. 强制解压缩 #

unxz -f file.txt.xz

与其他命令结合使用 #

1. 解压缩并通过管道传输到其他命令 #

unxz -c file.txt.xz | grep "pattern"

2. 解压缩并查看文件内容 #

unxz -c file.txt.xz | less

或使用xzless命令:

xzless file.txt.xz

3. 解压缩并统计行数 #

unxz -c file.txt.xz | wc -l

4. 解压缩并排序内容 #

unxz -c file.txt.xz | sort > sorted_file.txt

5. 解压缩多个文件并合并内容 #

unxz -c file1.xz file2.xz file3.xz > combined.txt

6. 解压缩tar.xz文件 #

unxz -c archive.tar.xz | tar -xf -

或使用tarJ选项:

tar -xJf archive.tar.xz

与xz的关系 #

unxz实际上是xz -d的一个符号链接或别名。这意味着以下命令是等效的:

unxz file.txt.xz
xz -d file.txt.xz

相关命令 #

  • xz:压缩文件
  • xzcat:查看压缩文件的内容(等同于unxz -c
  • xzless:使用less分页查看压缩文件的内容
  • xzgrep:在压缩文件中搜索模式
  • xzdiff:比较压缩文件的内容
  • xzmore:使用more分页查看压缩文件的内容

实用示例 #

1. 批量解压缩所有.xz文件 #

unxz *.xz

2. 解压缩并重命名 #

unxz -c original.txt.xz > renamed.txt

3. 解压缩到不同目录 #

unxz -c file.txt.xz > /path/to/directory/file.txt

4. 解压缩并过滤内容 #

unxz -c log.xz | grep "ERROR" > errors.txt

5. 解压缩大文件并显示进度 #

pv file.txt.xz | unxz > file.txt

6. 解压缩并立即处理 #

unxz -c data.xz | awk '{sum += $1} END {print sum}'

7. 解压缩并检查文件内容 #

unxz -c file.txt.xz | head -n 10

8. 解压缩并计算校验和 #

unxz -c file.txt.xz | md5sum

处理特殊情况 #

1. 处理损坏的xz文件 #

对于轻微损坏的xz文件,可以尝试使用--single-stream选项:

xz --single-stream -dc damaged_file.xz > recovered_file

2. 处理没有.xz扩展名的文件 #

unxz -f file_without_extension

3. 处理具有非标准扩展名的文件 #

unxz -f file.txz

提示 #

  • unxz默认会删除原始压缩文件,使用-k选项可以保留原始文件
  • 使用-c选项可以将解压缩结果输出到标准输出,这在管道操作中很有用
  • 在脚本中,通常使用-f选项忽略错误
  • 对于大文件,使用-T选项可以显著提高解压缩速度
  • unxz只能解压缩单个文件,不能解压缩包含多个文件的归档(这需要先使用tar
  • 在Linux系统中,许多命令都有对应的xz前缀版本,如xzcatxzlessxzgrep等,可以直接操作xz压缩文件
  • 如果需要同时处理多种压缩格式(如.gz、.bz2、.xz等),可以考虑使用7zunp等通用解压缩工具
  • 使用xz -l file.xz命令可以查看压缩文件的信息,而不需要解压缩
  • 对于tar.xz文件,通常使用tar -xJf file.tar.xz命令解压缩,而不是分两步进行