文章目录
- 一、命令介绍
- 二、常用选项
- 三、命令示例
- (一)压缩文件,压缩成功后删除原文件
- (二)解压文件,且不删除原文件
- (三)根据自定义的压缩率压缩文件
- (四)借助 xargs 命令并行压缩多文件
- (五)查看压缩文件的大小
- (六)解压缩,解压缩后压缩包消失
- (七)压缩文件到指定目录,支持重命名压缩后的文件名,压缩后源文件不消失
- (八)解压缩文件到指定目录支持重命名,压缩包不消失
- (九)查看压缩包中文件的内容
一、命令介绍
XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。
最初 XZ Utils 是基于 LZMA-SDK 开发,但是 LZMA-SDK 包含了一些 WINDOWS 平台的特性,所以 XZ Utils 为以适应 POSIX 平台作了大幅的修改。XZ Utils 的出现也是为了取代 POSIX 系统中旧的 LZMA Utils。
二、常用选项
选项 | 说明 |
---|---|
z, --compress | 强制压缩 |
-d | 解压缩 |
-t, --test | 测试压缩文件的完整性 |
-l, --list | 列出有关.xz文件的信息 |
-k, --keep | 保留(不要删除)输入文件 |
-f, --force | 强制覆盖输出文件和(解)压缩链接 |
-c, --stdout, --to-stdout | 写入标准输出,不要删除输入文件 |
-0 … -9 | 压缩预设,默认为6 |
-e, --extreme | 尝试通过使用更多的CPU时间来提高压缩比 |
-T, --threads=NUM | 最多使用NUM个线程; 默认值为1 |
set to 0 | 设置为0,使用与处理器内核一样多的线程 |
-q, --quiet | 抑制警告; 指定两次以抑制错误 |
-v, --verbose | 显示执行过程的信息 |
-h, --help | 显示简洁的帮助信息并退出 |
-H, --long-help | 显示更详细的帮助信息(还列出了高级选项) |
-V, --version | 显示版本号并退出 |
三、命令示例
(一)压缩文件,压缩成功后删除原文件
压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除:
[root@linuxcool ~]$ xz test.txt
[root@linuxcool ~]$ ls test.txt*
test.txt.xz
(二)解压文件,且不删除原文件
解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除:
[root@linuxcool ~]$ xz -d -k test.txt.xz
[root@linuxcool ~]$ ls test.txt*
test.txt.xz test.txt
(三)根据自定义的压缩率压缩文件
使用参数 -0, -1, -2, … -6, … -9 或参数 --fast, --best 设定压缩率。xz 命令默认压缩率为 -6
,对于大多数系统来说,甚至是一些较旧的系统,-4 … -6 压缩率预设值都有不错的表现。
压缩文件,且设定压缩率为 7,且保留原文件:
[root@linuxcool ~]$ xz -k7 test.txt
压缩文件,且设定高效压缩,且保留原文件:
[root@linuxcool ~]$ xz -k --fast test.txt
(四)借助 xargs 命令并行压缩多文件
借助 xargs 命令并行压缩多文件。下面的命令行可以将 /var/log 目录下所有的扩展名为 .log 的文件压缩。通过 xargs 命令同时运行多个 xz 进行压缩:
[root@linuxcool ~]$ find /var/log -type f -iname "*.log" -print0 | xargs -P4 -n16 xz -T1
注意:运行此命令须有 root 权限。
(五)查看压缩文件的大小
[root@linuxcool ~]$ du -sh test.txt.xz
(六)解压缩,解压缩后压缩包消失
[root@linuxcool ~]$ xz -d 1.txt.xz
(七)压缩文件到指定目录,支持重命名压缩后的文件名,压缩后源文件不消失
[root@linuxcool ~]$ xz -c test.txt > /root/local/tt.txt.xz
(八)解压缩文件到指定目录支持重命名,压缩包不消失
[root@linuxcool ~]$ xz -c -d test.txt.xz > /root/local/tt.txt
(九)查看压缩包中文件的内容
[root@linuxcool ~]$ xzcat test.txt.xz | more