lz4是一个让"人见人爱、花见花开"的压缩算法,能够在多核上很好的扩展。lz4在压缩率上略微逊色, 但是在解压速度上有着惊人的优势 (大概是gzip的3倍(多次测试对比))。因为压缩时高效的多核利用,再加上惊艳的解压,lz4已经在非常多重要场合使用了! 对于需要频繁压缩、实时快速解压的场景来说,lz4非常适合;lz4 解压缩的对象是文件而不是目录。
1)lz4工具安装
# yum install -y lz4 lz4-devel
2)lz4解压缩命令格式
压缩 (默认解压之后的名称filename.lz4) # lz4 filename 解压缩 # lz4 -d filename.lz4 centos7下默认有lz4_decompress 命令,可以直接解压, 并可以定义解压后的文件名 # lz4_decompress filename.lz4 filename # lz4_decompress filename.lz4 filename.txt
3)lz4参数解释
查看帮助
[root@localhost~]# lz4 --help
参数
-1: 快速压缩(默认)
-9: 高压缩
-d: 解压缩(默认为.lz4扩展名)
-z: 强制压缩
-f: 覆盖输出而不提示
-k: 保留源文件(默认)
--rm: 成功地解除/压缩后删除源文件
-h/-h: 显示帮助/长帮助和退出
高级参数
-v: 显示版本号并退出
-v: 详细模式
-q: 取消警告;指定两次也可以取消错误
-c: 强制写入标准输出,即使它是控制台
-t: 测试压缩文件完整性
-m: 多个输入文件(表示自动输出文件名)
-r: 在目录上递归操作(也设置为-m)
-l: 使用旧格式压缩(Linux内核压缩)
4)lz4解压缩示例
[root@MGR-node3 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@MGR-node3 ~]# cd /opt/ [root@localhost opt]# ls test [root@localhost opt]# cat test haha,hello world!! 1) 对test文件进行压缩 [root@localhost opt]# lz4 test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 快速压缩(-1参数),默认的就是快速压缩,如上面那条命令 [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# lz4 -1 test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 高压缩(-9参数) [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# lz4 -9 test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 当出现同名压缩文件时,直接压缩默认会有是否覆盖的提示信息 [root@localhost opt]# lz4 -9 test Compressed filename will be : test.lz4 test.lz4 already exists; do you wish to overwrite (y/N) ? y Compressed 8 bytes into 27 bytes ==> 337.50% 已存在同名压缩文件时,直接压缩而不输出是否覆盖的提示信息 [root@localhost opt]# lz4 -9 -f test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 压缩文件时,保留源文件 (-f 参数),默认压缩后就是保留源文件,所以-f参数加不加都可以 [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# lz4 test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# lz4 -f test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test test.lz4 压缩成功后,将源文件删除 (--rm参数) [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# ls test [root@localhost opt]# lz4 --rm test Compressed filename will be : test.lz4 Compressed 8 bytes into 27 bytes ==> 337.50% [root@localhost opt]# ls test.lz4 2)对压缩文件进行解压缩 默认通过-d参数进行解压缩 [root@localhost opt]# ls test.lz4 [root@localhost opt]# lz4 -d test.lz4 Decoding file test test.lz4 : decoded 8 bytes [root@localhost opt]# ls test test.lz4 [root@localhost opt]# cat test haha,hello world!! 也可以使用lz4_decompress命令进行解压缩,并且可以自定义解压缩之后的文件名 [root@localhost opt]# rm -f test [root@localhost opt]# ls test.lz4 [root@localhost opt]# lz4_decompress test.lz4 kevin #将test.lz4解压缩,解压缩之后为kevin文件 [root@localhost opt]# ls kevin test.lz4 [root@localhost opt]# cat kevin haha,hello world!! 3) 压缩时,取消告警提示信息 (-q参数) [root@localhost opt]# rm -f test.lz4 [root@localhost opt]# ls kevin [root@localhost opt]# lz4 -q kevin [root@localhost opt]# ls kevin kevin.lz4 [root@localhost opt]# lz4 -q -f kevin [root@localhost opt]# lz4 -q -f --rm kevin [root@localhost opt]# ls kevin.lz4 4)对多个文件进行匹配压缩 [root@localhost opt]# ls bobo kevin [root@localhost opt]# lz4 -m bobo kevin [root@localhost opt]# ls bobo bobo.lz4 kevin kevin.lz4 [root@localhost opt]# rm -rf bobo kevin [root@localhost opt]# ls bobo.lz4 kevin.lz4 [root@localhost opt]# lz4 -d bobo.lz4 -q [root@localhost opt]# lz4 -d kevin.lz4 -q [root@localhost opt]# ls bobo bobo.lz4 kevin kevin.lz4