Linux命令之lz4命令

news2024/9/23 17:13:05

一、lz4命令简介

  LZ4是一种压缩格式,特点是压缩/解压缩速度超快(压缩率不如gzip),如果你特别在意压缩速度,或者当前环境的CPU资源紧缺,可以考虑这种格式。lz4是一种非常快速的无损压缩算法,基于字节对齐LZ77系列压缩方案。lz4提供每核400 MB/s的压缩速度,可通过多核CPU线性扩展。它的特点是极快的解码器,每核速度可达多GB/s,通常在多核系统上达到RAM速度限制项目。lz4遵循上面说到的lz77思想理论,通过滑动窗口、hash表、数据编码等操作实现数据压缩。压缩过程以至少4字节为扫描窗口查找匹配,每次移动1字节进行扫描,遇到重复的就进行压缩。centos7默认安装了lz4命令,可以实现lz4格式文件的压缩和解压缩。

二、命令使用示例

1、查看命令版本

  lz4命令安装版本是1.7.5

[root@s76 ~]# lz4 -V
*** LZ4 command line interface 64-bits v1.7.5, by Yann Collet ***

2、获取命令帮助

  日常使用中如果忘记lz4命令语法格式,我们可以通过lz4 --help或者man lz4命令获取lz4命令的帮助信息。

[root@s76 ~]# lz4 --help
[root@s76 ~]# man lz4

3、命令安装

  centos7默认安装了lz4命令,如果没有安装,可以使用yum安装方式安装该命令。

[root@s76 ~]# yum install -y lz4 lz4-devel

4、压缩单个文件

[root@s76 ~]# lz4 anaconda-ks.cfg test.lz4
Compressed 2927 bytes into 1825 bytes ==> 62.35%

5、压缩多个文件

  压缩多个文件使用参数-m,压缩后的文件名是源文件加上lz4后缀。lz4命令只可以将单个文件压缩,如果我们需要将多个文件压缩到一个文件,我们需要将lz4和tar命令结合使用。

[root@s76 ~]# lz4 -m anaconda-ks.cfg original-ks.cfg
[root@s76 ~]# ll
total 16
-rw-------. 1 root root 2927 Feb 8 15:19 anaconda-ks.cfg
-rw-------. 1 root root 1825 Feb 8 15:19 anaconda-ks.cfg.lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
-rw-------. 1 root root 1216 Feb 8 15:19 original-ks.cfg.lz4
[root@s76 ~]# tar -cvf anaconda-ks.cfg original-ks.cfg |lz4 - 2.tar.lz4
Compressed 16 bytes into 35 bytes ==> 218.75%

6、压缩目录

  lz4只能压缩文件,如果需要压缩目录需要结合tar命令一起。

[root@s76 ~]# tar cvf - test | lz4 - 1.tar.lz4
test/
test/1.tar
Compressed 20480 bytes into 325 bytes ==> 1.59%
在这里插入图片描述

7、压缩后删除源文件

[root@s76 ~]# lz4 --rm hi.txt hi.txt.lz4
Compressed 5 bytes into 24 bytes ==> 480.00%
[root@s76 ~]# ll
total 24
-rw-r–r–. 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r–r–. 1 root root 24 Feb 12 21:01 hi.txt.lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr-x. 2 root root 19 Feb 12 20:38 test

8、解压lz4文件

[root@s76 ~]# lz4 -d hi.txt.lz4
Decoding file hi.txt
hi.txt.lz4 : decoded 5 bytes
[root@s76 ~]# ll
total 28
-rw-r–r–. 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r–r–. 1 root root 5 Feb 12 21:01 hi.txt
-rw-r–r–. 1 root root 24 Feb 12 21:01 hi.txt.lz4
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr-x. 2 root root 19 Feb 12 20:38 test

9、解压并删除压缩文件

[root@s76 ~]# lz4 --rm -d hi.txt.lz4
Decoding file hi.txt
hi.txt.lz4 : decoded 5 bytes
[root@s76 ~]# ll
total 24
-rw-r–r–. 1 root root 325 Feb 12 20:57 1.tar.lz4
-rw-------. 1 root root 10240 Feb 12 20:40 anaconda-ks.cfg
-rw-r–r–. 1 root root 5 Feb 12 21:01 hi.txt
-rw-------. 1 root root 2045 Feb 8 15:19 original-ks.cfg
drwxr-xr-x. 2 root root 19 Feb 12 20:38 test

10、高压缩比方式压缩

[root@s76 ~]# lz4 -9 hi.txt hi.txt.lz4
Compressed 5 bytes into 24 bytes ==> 480.00%

11、压缩并覆盖文件

[root@s76 ~]# lz4 hi.txt.lz4 hi.txt
hi.txt already exists; do you wish to overwrite (y/N) ? y
Compressed 24 bytes into 43 bytes ==> 179.17%
[root@s76 ~]# lz4 -f hi.txt.lz4 hi.txt
Compressed 24 bytes into 43 bytes ==> 179.17%

12、解压并输出文件

[root@s76 ~]# cat hi.txt
hi,wuhs
[root@s76 ~]# lz4 -dc hi.txt.lz4
hi,wuhs

13、解压速度测试

  1个22G的文件解压花费时间5分18秒,解压后的大小为45G。
在这里插入图片描述

三、lz4命令使用语法及参数说明

1、命令格式

#lz4 [arg] [input] [output]

2、参数说明

参数参数说明
-1快速压缩(默认)
-9高压缩
-d解压缩(默认为.lz4扩展名)
-z强制压缩
-f覆盖输出而不提示
-k保留源文件(默认)
–rm成功地解除/压缩后删除源文件
-h/-H显示帮助/长帮助和退出
-V显示版本号并退出
-v详细模式
-q取消警告;指定两次也可以取消错误
-c强制写入标准输出,即使它是控制台
-t测试压缩文件完整性
-m多个输入文件(表示自动输出文件名)
-r在目录上递归操作(也设置为-m)
-l使用旧格式压缩(Linux内核压缩)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql 常用日期处理函数

Mysql 常用日期处理函数 1 建表语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CREATE TABLE emp (EMPNO int(4) NOT NULL,ENAME varchar(10…

网络编程Socket套接字,UDP和TCP的服务器客户端程序实现

目录 一. 何为网络编程 二. Socket套接字 1. 简单认识 UDP 和 TCP 2. 基于 UDP 实现简单的客户端服务器的网络通信程序 1. 方法使用 2. 回显服务器的实现 3. 回显客户端的实现 3. 基于 UDP 实现简单的客户端服务器的网络通信程序 1. 方法使用 2. 回显服务器的实现 …

NSGA-Ⅲ源代码

NSGA-Ⅲ源代码如下,供大家学习和应用。该算法在梯级水电-火电的应用订阅专栏即可查看: 1、主函数 % % Copyright (c) 2016, Mostapha Kalami Heris & Yarpiz (www.yarpiz.com) % All rights reserved. Please read the "LICENSE" file…

【项目实战】从0开始入门JDK源码 - LinkedList源码 - 实现双端队列、队列、栈分析

一、类图分析 从 LinkedList的类图可以知道,LinkedList实现了 Deque双端队列接口 1.1 LinkedList拥有队列、双端队列的特性 Deque接口继承于 Queue接口,所以 LinkedList拥有队列、双端队列的特性; 1.2 LinkedList同时也拥有栈的特性 其次,JAVA中,有一个过时类 Stac…

电子科技大学软件工程期末复习笔记(六):软件测试

目录 前言 重点一览 软件测试 基本原则 目标 测试用例 软件缺陷 调试与测试 测试与质量保证 软件测试的评估准则 黑盒测试 定义 等价类划分 边界值分析 状态测试 白盒测试 定义 逻辑覆盖测试 控制流图覆盖测试 基本路径测试 灰盒测试 静态测试 含义 范…

产品分析|虎扑APP

不同于传统的体育新闻门户网站,虎扑以篮球社区起家,在经历了从体育论坛到体育新闻网站的发展后,又逐渐回归社区发展。 目前,虎扑汇聚了大量的男性用户,俨然成为了“互联网直男的自留地”。特立独行的发展方向使得虎扑不断发展壮大,同时也使得虎扑逐渐触碰到了行业天花板。…

大数据算法自检

1 大数据亚线性空间算法 1.1 流模型的计数问题 问题定义?用什么算法?算法步骤?(提示:三层递进) 切比雪夫不等式?怎么证明?期望,方差,空间复杂度? 极其有限的空间存储极…

【音视频开发】 ffmpeg解码API

1.版本迭代ffmpeg解码API经过了好几个版本的迭代,上一个版本的API是解码视频:avcodec_decode_video2解码音频:avcodec_decode_audio4我们现在能看到的很多解码例子用的都是这两个,不过现在ffmpeg更推荐用新一代的API向解码器输送数…

04 中间件-提高框架的可拓展性

到目前为止我们已经完成了 Web 框架的基础部分,使用 net/http 启动了一个 Web 服务,并且定义了自己的 Context,可以控制请求超时。 在前面的controller.go中有一个超时控制逻辑: func FooControllerHandler(c *framework.Context…

【Ap AutoSAR入门与实战开发04】:服务的需求定义以及如何在arxml中定义服务

总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 服务的需求定义2 服务的arxml定义2.1 事件中的数据类型定义我们在「【Ap AutoSAR入门与实战开发03】-【Ap_s2s模块02】:到底什么是基于信号,什么是基于服务,两者的主要区别是什么?」的文章中讲到了讲到了服…

如何在ONLYOFFICE v7.3中使用 WRAPROWS、WRAPCOLS公式

在ONLYOFFICE7.3版本更新以来,每次给大家都分享几种函数公式的运用方式,今天在给大家分享两种,分别是;WRAPROWS、WRAPCOLS。 ONLYOFFICE ONLYOFFICE文档是一款免费开源在线办公软件,可以打开阅读并编辑文档、表格和幻…

1247. 交换字符使得字符串相同

1247. 交换字符使得字符串相同 难度中等162收藏分享切换为英文接收动态反馈 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&am…

轻松入门H3C无线AC上线AP【入门篇】

我们知道华三的最新模拟器支持了无线AC的配置,今天就浅浅的出个无线AC的教程,你上也会的那种。今天我们模拟的是二层环境下,笔者准备了2个AP,以此展示AP上线到AC的教程,并且用手机测试WiFi连接正常,且客户端…

7、nodejs安装

前言:工具下载地址阿里云盘:nodejs:https://www.aliyundrive.com/s/hLAKBgjNUqr提取码: p9q9一、介绍Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件…

【VUE】二 vue指令

目录 一、插值表达式 二、v-bind指令(对标签中的属性进行操作) 三、v-model指令(input、select、textarea等。【双向绑定】) 四、v-for循环指令 五、v-on(事件指令) 六、v-if条件判断 七、v-show(条件显示或隐藏) 八、案例…

模型解释性:PFI、PDP、ICE等包的用法

本篇主要介绍几种其他较常用的模型解释性方法。 1. Permutation Feature Importance(PFI) 1.1 算法原理 置换特征重要性(Permutation Feature Importance)的概念很简单,其衡量特征重要性的方法如下:计算特征改变后模型预测误差的增加。如果打乱该特征的…

HCIP-5距离矢量路由协议RIP学习笔记

前言 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。RIP主要应用于规模较小的网络中。Rip是第一个动…

如何创建“杀手级”SaaS 产品文档?

SaaS 产品的文档至关重要,尽管在 SaaS 初创公司的旋风中,它可能在您的列表中并不重要。它不仅仅是为客户支持节省成本。您可能已经在发布一些文档时做了一些尝试,但现在是时候将您的文档提升到一个新的水平了。由于 SaaS 公司采用订阅模式运营…

【Git】Git使用(保姆级讲解)

1、第一次安装使用 git下载地址:https://git-scm.com/download 1.1 配置用户名、邮箱 ​ 这是非常重要的,因为每次Git提交都会使用该用户信息。 设置 ​ 在 git bash 输入以下命令。 git config --global user.name "" git config --glo…

CV学习笔记-ResNet

ResNet 文章目录ResNet1. ResNet概述1.1 常见卷积神经网络1.2 ResNet提出背景2. ResNet网络结构2.1 Residual net2.2 残差神经单元2.3 Shortcut2.4 ResNet50网络结构3. 代码实现3.1 Identity Block3.2 Conv Block3.3 ResNet网络定义3.4 整体代码测试1. ResNet概述 1.1 常见卷积…