XZ Utils 压缩工具使用参考


XZ Utils 是为 POSIX 平台开发具有高压缩率的工具,是一个使用LZMA压缩算法的无损数据压缩文件格式。与gzip与bzip2一样支持多文件压缩,但不能将多于一个的目标文件压缩进同一个档案文件。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。最初 XZ Utils 的是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为适应 POSIX 平台作了大幅的修改,其出现也是为了取代 POSIX 系统中旧的 LZMA Utils。
XZ Utils 主要包含了下列部分:
命令行程序 xz,用来生成和解压缩 .xz 压缩文件。
一组实用的脚本工具 (xzcat, xdiff, xzgrep 等)提供浏览,查找以及比较 .xz 文件内容等功能。
liblzma 压缩库,提供算法的实现和近似于 ZLIB 的编程接口。
提供对 LZMA Utils 的一些兼容。
xz utils是lzma utils的下一代故改名为xz utils。使用其进行压缩时 ,生成文件的*.xz 格式比 *.lzma格式略大,到目前为止,lzma utils 的压缩率仍是最大的,xz utils 解压时间占有优势。与 POSIX 系统上传统的压缩工具 gzip、bzip2 相比,其吸引人的地方在于它能够提供更高的压缩率,生成的文件更小,且解压数据的速度也很快。其主页上对此有描述:对于典型文件,XZ Utils 能够生成比使用 gzip 小 30%,比使用 bzip小15%的压缩文件。
xz 文件格式
XZ Utils 工具生成的压缩文件扩展名为 .xz (MIME 类型为"application/x-xz")。
简单用法
xz 【选项】 待压缩的文件
常用选项:
-z 强制压缩
-d 解压缩.xz结尾的压缩文件
xz -z 要压缩的文件
如果要保留被压缩的文件加上参数-k ,如果要设置压缩率加入参数'-0'到'-9'调节压缩率。如果不设置,默认压缩等级是6。
示例:
xz freeoa.0708.tar
xz -d freeoa.0708.tar.xz
与结合tar结合使用
和 tar 命令配合处理多个文件,习惯了tar czvf或tar xzvf的人可能碰到 tar.xz也会想用一条命令搞定解压或压缩。其实不行 tar里面没有对xz格式的参数,比如z是针对gzip,j是针对 bzip2。一般来说,有两种简单的方法将 tar 和 xz 结合起来,一是使用管道,或是使用 tar 命令的参数'J'。两种方法各自有各自的优点,第一种方法可以充分利用 xz 利用丰富的参数,而第二种方法使用起来更简单容易。
创建tar.xz文件:只要先 tar cvf freeoa.tar freeoa 这样创建freeoa.tar文件,然后使用 xz -z freeoa.tar 来将 freeoa.tar 压缩成为 freeoa.tar.xz。
解压tar.xz文件:先 xz -d freeoa.tar.xz 将 freeoa.tar.xz解压成 freeoa.tar,然后再调用 tar xvf freeoa.tar 来解包。
新版本的tar可以使用J参数来调用xz程序来进行压缩和解压缩。
示例:
tar Jcvf freeoa.0708.tar.xz freeoa.0708 压缩
tar Jxvf freeoa.0708.tar.xz freeoa.0708 解压缩
使用参数 -l 显示 .xz 文件的基本信息。基本信息包括压缩率、数据完整性验证方式等。也可以和参数 -v 或 -vv 配合显示更详尽的信息。
使用参数 -0, -1, -2, … -6, … -9 或参数 --fast, --best 设定压缩率,这个跟gz与bz相同。xz 命令的默认为 -6 ,对于大多数系统来说,甚至是一些较旧的系统,-4 … -6 压缩率预设值都不错的表现。
xz家族工具集
xzgrep、xzcat、xzdiff等实用工具
xzcat
相当于 "xz --decompress --stdout" 就是将解压出的数据输出到标准输出 (stdout)。下面的例子用来统计压缩 test.txt.xz 文件所包含数据的行数。
$ xzcat freeoa.txt.xz | wc -l ## count the lines of freeoa.txt
xzgrep
可以用来 grep 压缩文件所包含的数据内容。其内部就是调用 grep 命令,所以参数和 grep 一致。
xzless和xzmore
这两个命令可以分页查看压缩文件中的内容。简单的来说,相当于:
"xzcat <file.xz> | less" 或 "xzcat <file.xz> | more"
xzdiff 和 xzcmp
这两个命令用于比较两个 .xz 文件。内部分别调用命令 diff 和 cmp 来实现文件内容的比较。
XZ Utils 主要包含了下列部分:
命令行程序 xz,用来生成和解压缩 .xz 压缩文件。
一组实用的脚本工具 (xzcat, xdiff, xzgrep 等)提供浏览,查找以及比较 .xz 文件内容等功能。
liblzma 压缩库,提供算法的实现和近似于 ZLIB 的编程接口。
提供对 LZMA Utils 的一些兼容。
xz utils是lzma utils的下一代故改名为xz utils。使用其进行压缩时 ,生成文件的*.xz 格式比 *.lzma格式略大,到目前为止,lzma utils 的压缩率仍是最大的,xz utils 解压时间占有优势。与 POSIX 系统上传统的压缩工具 gzip、bzip2 相比,其吸引人的地方在于它能够提供更高的压缩率,生成的文件更小,且解压数据的速度也很快。其主页上对此有描述:对于典型文件,XZ Utils 能够生成比使用 gzip 小 30%,比使用 bzip小15%的压缩文件。
xz 文件格式
XZ Utils 工具生成的压缩文件扩展名为 .xz (MIME 类型为"application/x-xz")。
简单用法
xz 【选项】 待压缩的文件
常用选项:
-z 强制压缩
-d 解压缩.xz结尾的压缩文件
xz -z 要压缩的文件
如果要保留被压缩的文件加上参数-k ,如果要设置压缩率加入参数'-0'到'-9'调节压缩率。如果不设置,默认压缩等级是6。
示例:
xz freeoa.0708.tar
xz -d freeoa.0708.tar.xz
与结合tar结合使用
和 tar 命令配合处理多个文件,习惯了tar czvf或tar xzvf的人可能碰到 tar.xz也会想用一条命令搞定解压或压缩。其实不行 tar里面没有对xz格式的参数,比如z是针对gzip,j是针对 bzip2。一般来说,有两种简单的方法将 tar 和 xz 结合起来,一是使用管道,或是使用 tar 命令的参数'J'。两种方法各自有各自的优点,第一种方法可以充分利用 xz 利用丰富的参数,而第二种方法使用起来更简单容易。
创建tar.xz文件:只要先 tar cvf freeoa.tar freeoa 这样创建freeoa.tar文件,然后使用 xz -z freeoa.tar 来将 freeoa.tar 压缩成为 freeoa.tar.xz。
解压tar.xz文件:先 xz -d freeoa.tar.xz 将 freeoa.tar.xz解压成 freeoa.tar,然后再调用 tar xvf freeoa.tar 来解包。
新版本的tar可以使用J参数来调用xz程序来进行压缩和解压缩。
示例:
tar Jcvf freeoa.0708.tar.xz freeoa.0708 压缩
tar Jxvf freeoa.0708.tar.xz freeoa.0708 解压缩
使用参数 -l 显示 .xz 文件的基本信息。基本信息包括压缩率、数据完整性验证方式等。也可以和参数 -v 或 -vv 配合显示更详尽的信息。
使用参数 -0, -1, -2, … -6, … -9 或参数 --fast, --best 设定压缩率,这个跟gz与bz相同。xz 命令的默认为 -6 ,对于大多数系统来说,甚至是一些较旧的系统,-4 … -6 压缩率预设值都不错的表现。
xz家族工具集
xzgrep、xzcat、xzdiff等实用工具
xzcat
相当于 "xz --decompress --stdout" 就是将解压出的数据输出到标准输出 (stdout)。下面的例子用来统计压缩 test.txt.xz 文件所包含数据的行数。
$ xzcat freeoa.txt.xz | wc -l ## count the lines of freeoa.txt
xzgrep
可以用来 grep 压缩文件所包含的数据内容。其内部就是调用 grep 命令,所以参数和 grep 一致。
xzless和xzmore
这两个命令可以分页查看压缩文件中的内容。简单的来说,相当于:
"xzcat <file.xz> | less" 或 "xzcat <file.xz> | more"
xzdiff 和 xzcmp
这两个命令用于比较两个 .xz 文件。内部分别调用命令 diff 和 cmp 来实现文件内容的比较。