Linux命令之lz4命令使用示例

 更新时间:2023年03月15日 10:17:19   作者:恒悦sunsite  
lz4是一种非常快速的无损压缩算法,基于字节对齐LZ77系列压缩方案,它的特点是极快的解码器,每核速度可达多GB/s,通常在多核系统上达到RAM速度限制项目,这篇文章主要介绍了Linux命令之lz4命令,需要的朋友可以参考下

一、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内核压缩)

到此这篇关于Linux命令之lz4命令的文章就介绍到这了,更多相关Linux lz4命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 常用Shell命令集合和使用技巧(推荐)

    常用Shell命令集合和使用技巧(推荐)

    这篇文章主要介绍了最常用Shell命令集合和使用技巧,本文分场景通过实例讲解给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Linux查找文件夹下包含某字符的所有文件

    Linux查找文件夹下包含某字符的所有文件

    这篇文章主要介绍了Linux查找文件夹下包含某字符的所有文件,文中给大家提到了linux查找目录下的所有文件中是否含有某个字符串的相关知识,需要的朋友可以参考下
    2019-09-09
  • linux shell之控制台打印各种颜色字体和背景的实现方法

    linux shell之控制台打印各种颜色字体和背景的实现方法

    今天小编就为大家分享一篇关于linux shell之控制台打印各种颜色字体和背景的实现方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 实例详解Linxu中df命令

    实例详解Linxu中df命令

    df 即“可用磁盘”disk free,用于显示文件系统的磁盘使用情况,本文通过一些例子给大家讲解linux df命令,感兴趣的朋友一起学习吧
    2015-11-11
  • Linux服务器无法登陆问题的解决方法

    Linux服务器无法登陆问题的解决方法

    下面小编就为大家带来一篇Linux服务器无法登陆问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)

    shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)

    在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统内存的使用情况
    2014-02-02
  • linux创建用户useradd命令代码示例

    linux创建用户useradd命令代码示例

    本文通过代码示例给大家介绍了adduser与useradd命令二者的关系 以及使用useradd命令添加用户的方法,需要的朋友参考下吧
    2017-08-08
  • Shell expr命令进行整数计算的实现

    Shell expr命令进行整数计算的实现

    这篇文章主要介绍了Shell expr命令进行整数计算的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 一个简单的linux命令 mv

    一个简单的linux命令 mv

    这篇文章主要介绍了一个简单的linux命令mv,mv命令用于移动文件或者将文件改名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • shell之分离解析脚本的实现方法

    shell之分离解析脚本的实现方法

    这篇文章主要介绍了shell之分离解析脚本的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论