xz是什么

高压缩率的工具,它使用 LZMA2 压缩算法,生成的压缩文件比传统使用的 gzip、bzip2 生成的压缩文件更小,

不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩主要用于归档,不介意的可以忽略。

擅长压缩文本和日志文件,针对这块的压缩率,是目前我发现效率最高的,没有之一。

语法结构:

xz [选项] [参数]

主要参数说明:

  • -z --compress # 强制压缩
  • -d --decompress # 解压缩
  • -t --test # 测试压缩文件的完整性
  • -k --keep # 压缩或解压时保持源文件不被删除
  • -l --list # 列出有关.xz文件的信息
  • -0~9 # 指定压缩率,默认为6;
  • -h --help # 显示这个简洁的帮助并退出
  • -H --long-help # 显示更多帮助(还列出了高级选项)
  • -V --version # 显示版本号并退出

有些操作系统可以没有自带,需要执行yum install xz自行安装一下。

记得先装epel源yum install epel-release

压缩和解压案例

压缩使用

首先使用dd生成一个大文件,再使用xz压缩看效果

[root@VM-0-13-centos ~]# dd if=/dev/zero of=test.jpg bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.588149 s, 1.8 GB/s
[root@VM-0-13-centos ~]# xz test.jpg
[root@VM-0-13-centos ~]# ll -h
total 596K
-rw-r--r-- 1 root root 153K Jan 29 18:11 test.jpg.xz

可以看到已经对test.jpg文件进行压缩,格式如上。

解压使用

解压test.jpg.xz使用-d参数,如果保留源文件可以加-k

[root@VM-0-13-centos ~]# xz -dk test.jpg.xz
[root@VM-0-13-centos ~]# ll -h test*
-rw-r--r-- 1 root root 1.0G Jan 29 18:11 test.jpg
-rw-r--r-- 1 root root 153K Jan 29 18:11 test.jpg.xz

可以看到压缩文件被保留了。

额外用法

使用参数 -l 显示 .xz 文件的基本信息。基本信息包括压缩率、数据完整性验证方式等。

[root@VM-0-13-centos ~]# xz -l test.jpg.xz
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 1 152.7 KiB 1,024.0 MiB 0.000 CRC64 test.jpg.xz

使用xzcat对已压缩日志直接查看,再grep过滤关键信息,或xzgrep直接过滤也行,省去再解压步骤。

[root@VM-0-13-centos ~]# xz -k /root/wechatbot/bin/nohup.out
[root@VM-0-13-centos ~]# cd /root/wechatbot/bin/
[root@VM-0-13-centos bin]# ll
total 38456
-rw-r--r-- 1 root root 92 Dec 10 12:06 config.json
-rw------- 1 root root 674304 Jan 29 18:33 nohup.out
-rw------- 1 root root 83000 Jan 29 18:32 nohup.out.xz
[root@VM-0-13-centos bin]# xzcat nohup.out.xz |grep "18:29"
2023/01/27 18:29:02 RetCode:0 Selector:0
2023/01/27 18:29:27 RetCode:0 Selector:0
2023/01/27 18:29:52 RetCode:0 Selector:0
2023/01/28 09:18:29 RetCode:0 Selector:0
2023/01/28 18:29:06 RetCode:0 Selector:0
2023/01/28 18:29:31 RetCode:0 Selector:0
2023/01/28 18:29:56 RetCode:0 Selector:0

---- 钢铁侠的知识库 2023.01.29

总结

以上就是xz压缩解压常见用法,工作中一般会写脚本对日志进行定时压缩,

有需要查看关键报错内容的时候使用xzgrep即可,无需再解压,非常方便。

想了解更多xz --helpxz -H,或官网:https://tukaani.org/xz/

linux 高效压缩工具之xz的压缩解压使用的更多相关文章

  1. Linux常用命令(二)————压缩+解压

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

  2. Linux XZ格式的解压

    xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到这种压缩格式的,phpm ...

  3. Linux打包压缩解压工具

    第1章      Linux 打包压缩解压工具一.压缩.解压工具 compress/uncompress gzip/gunzip bzip2/bunzip2/ bzcat xz/unxz/ xzcat ...

  4. Linux 压缩解压操作

    Linux 压缩解压操作 Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的 ...

  5. Linux 压缩解压

    压缩解压 ------------------------------------------ linux 下所有的压缩格式,WinRAR 都支持 gzip .gz 格式 压缩文件: gzip 文件名 ...

  6. linux驱动系列之文件压缩解压小节(转)

    转至网页:http://www.jb51.net/LINUXjishu/43356.html Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通 ...

  7. Linux的压缩解压命令快速上手——解压篇

    在Linux系统中,压缩文件通常是先将若干文件(包括目录)打包成一个tar文件,然后再调用压缩程序将tar文件压缩成相应的压缩包,这也就是为什么Linux系的压缩包的后缀通常都是像tar.gz,tar ...

  8. linux压缩解压命令

    -c: 建立压缩档案  -x:解压  -t:查看内容  -r:向压缩归档文件末尾追加文件  -u:更新原压缩包中的文件  这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一 ...

  9. linux中tar及压缩解压命令用法

    把常用的tar解压命令总结下,当作备忘: tar 命令可以为Linux的文件和目录创建档案.利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向 档案中加入新的文件.t ...

  10. linux下打压缩解压

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...

随机推荐

  1. Kafka 架构和原理机制 (图文全面详解)

    目录 一:Kafka 简介 二:Kafka 基本架构 三:Kafka 基本原理 四:Zookeeper 在 kafka 的作用 五:Kafka 的特性 六:Kafka 的应用场景 一:Kafka 简介 ...

  2. Aspose.Cell和NPOI生成Excel文件2

    NPOI还是比较好用的,引用dll程序集即可 1创建workbook和工作流 HSSFWorkbook workbook = new HSSFWorkbook(); MemoryStream ms = ...

  3. 谣言检测()《Rumor Detection with Self-supervised Learning on Texts and Social Graph》

    论文信息 论文标题:Rumor Detection with Self-supervised Learning on Texts and Social Graph论文作者:Yuan Gao, Xian ...

  4. <一>类,对象,this指针

    C++ 类:实体的抽象类型 实体(属性,行为) ->ADT(abstract data type) 类(属性->成员变量,行为->成员方法) OOP语言4大特征 抽象 封装/隐藏(通 ...

  5. 通过jmeter,将数据库数据查询出来并打印

    1. 连接数据库 1.1 添加jdbc驱动路径 1.2 JDBC Connection Configuration    1.3 JDBC Request 2. 查询数据库数据并打印 2.1 定义变量 ...

  6. 2021-2022 ICPC, NERC, Northern Eurasia Onsite (Unrated, Online Mirror, ICPC Rules, Teams Preferred) J. Job Lookup

    题意 n个节点,n<=200,你需要构造这n个几点成为一棵树,并且这棵树的中序遍历为1-n; 你构造树的节点之间的最短路构成一个n×n的最短距离矩阵d: 同时给你n×n的权重矩阵c:最最小的Σd ...

  7. java学习之JSP

    0x00前言 JSP:全拼写:java Server pages:java 服务器端页面 可以理解为一个特殊的页面:可以定义html代码也可以定义java的代码 定义:JSP是简化Servlet编写的 ...

  8. 【题解】CF1503B 3-Coloring

    题面传送门 解决思路 讲一下 \(\text{VP}\) 时的思路. 首先想到,只要能将棋盘中红色或蓝色部分全部填成同一个数,那么剩下的就不会受限了(可行有两个,限制只有一个): 但考虑到交互库可能有 ...

  9. JAVA系列之类加载机制详解

    类的加载机制 ? 双亲委派机制 ? 什么是类加载器 ? 自定义类加载器有哪些应用场景 ? 通常,在关于Java的类加载部分会遇到以上疑问,本文将对类加载重要部分做详细介绍,包括重要的基础概念和应用场景 ...

  10. python-py文件打包成exe可执行文件

    方法一::打包完成后可以直接被他人使用,他人不用安装python环境的 可以使用pyinstaller模块实现将python项目打包成exe执行文件 """ 先安装模块 ...