3. xz/unxz 命令

xz 命令是数据压缩的命令,是基于 LZMA(Lempel-Ziv-Markov Chain Algorithm) 算法的数据压缩格式进行数据压缩的命令。xz命令以其高压缩比和相对较慢的压缩/解压速度著称。

特点:

  1. 对文本、日志等冗余数据,压缩比通常为比价高。对已压缩文件(如 ZIP、JPEG),压缩效果有限,甚至可能略微膨胀。
  2. 高压缩比代价:压缩速度显著慢于 gzip 等算法
  3. 常用于 Linux 软件包(如 .deb、.rpm)的的数据压缩。

xz 是用于数据压缩的命令,unxz 是用于解压缩的命令。

xz 和 unxz 都只能对文件进行压缩和解压缩,不能对文件夹进行操作压缩文件。如果需要将文件夹打包再压缩,需要结合 tar 命令一起使用。

xz命令

命令格式:

xz [选项] 文件名1 [文件名2]...

压缩后,原始文件会被替换为 文件名.xz(默认删除原文件)。

例如:

weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ xz hello.py
weimingze@mzstudio:~$ ls
hello.py.xz  下载  公共  图片  文档  桌面  模板  视频  音乐

hello.py.xz 是 压缩 hello.py 后生成的文件,原来的 hello.py 被删除了

xz 常用选项

选项
说明
-d
解压文件(等同于 unxz
-k
保留原始文件(不删除)
-v
显示压缩/解压的详细信息
-1-9
压缩级别(-1 最快,-9 最高压缩率,默认 -6
-c
输出到标准输出(不修改原文件)
-t
测试压缩文件的完整性

解压缩可以使用 xz -d 如:

weimingze@mzstudio:~$ ls
hello.py.xz  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ unxz hello.py.xz
weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐

unxz命令

unxz 命令对使用 xz 命令压缩的 .xz 文件进行解压缩操作。其实此命令等同于 xz -d 命令和参数的组合。

命令格式:

unxz [选项] 文件名1.xz [文件名2.xz]...

解压缩后,xxx.xz 文件的文件名 xxx 会被作为生成的文件,原文件 xxx.xz被删除。

如:

weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ xz hello.py
weimingze@mzstudio:~$ ls
hello.py.xz  下载  公共  图片  文档  桌面  模板  视频  音乐
weimingze@mzstudio:~$ unxz hello.py.xz
weimingze@mzstudio:~$ ls
hello.py  下载  公共  图片  文档  桌面  模板  视频  音乐

练习:

  1. /etc/passwd 文件复制到家文件夹 ~
  2. 查看 ~/passwd 文件的大小。
  3. ~/passwd 文件使用 xz 压缩,然后查看压缩后文件的大小。
  4. 计算文件 xz 命令对 passwd 文件的压缩率(压缩率 = (压缩后文件大小 / 原始文件大小) × 100%)。
  5. 删除压缩后的 .xz 文件。