lz4是Linux系统中一款高性能的无损数据压缩工具,它的压缩和解压速度远快于传统的gzip、bzip2等工具,同时压缩率也处于不错的水平,因此在日志处理、数据备份、大文件传输等场景中应用十分广泛。

lz4命令基本语法
lz4命令的基础语法格式如下:
lz4 [参数] [输入文件] [输出文件]
如果不指定输出文件,默认会在输入文件同目录下生成以.lz4为后缀的压缩文件。
常用参数说明
lz4提供了丰富的参数来满足不同的使用需求,以下是常用的参数列表:
| 参数 | 说明 |
|---|---|
| -z | 强制压缩,默认情况下如果输入是标准输入会启用压缩,该参数可显式指定压缩操作 |
| -d | 解压缩文件,也可使用lz4_decompress命令实现相同功能 |
| -f | 强制覆盖已存在的输出文件,不提示确认 |
| -k | 压缩或解压完成后保留原始文件,默认压缩会删除原文件,解压会删除压缩文件 |
| -v | 显示压缩或解压过程的详细信息,包括压缩率、处理速度等 |
| -q | 静默模式,不输出任何提示信息 |
| -1到-9 | 压缩级别,1代表最快压缩速度最低压缩率,9代表最慢压缩速度最高压缩率,默认是1 |
| -t | 测试压缩文件的完整性,不执行实际解压操作 |
| -l | 使用旧版LZ4格式,兼容性更好,但部分新特性不可用 |
常见使用场景示例
1. 压缩单个文件
压缩当前目录下的test.log文件,保留原文件,并显示处理详情:
lz4 -kv test.log
执行后会生成test.log.lz4压缩文件,同时终端会输出压缩率、处理耗时等信息。
2. 解压缩文件
解压test.log.lz4文件,保留原压缩文件:
lz4 -dk test.log.lz4
解压后会得到test.log原始文件,原压缩文件不会被删除。
3. 调整压缩级别压缩文件
使用最高压缩级别9压缩data.txt文件,强制覆盖已存在的压缩文件:
lz4 -9f data.txt
该操作会生成data.txt.lz4,如果已存在同名文件会直接覆盖。
4. 测试压缩文件完整性
检查backup.tar.lz4文件是否损坏:
lz4 -t backup.tar.lz4
如果文件完整,不会有任何输出;如果文件损坏,会提示错误信息。
5. 压缩目录下的所有文件
可以通过结合find命令批量压缩某个目录下的所有.log文件:
find /var/log -name "*.log" -exec lz4 -k {} ;
该命令会找到/var/log目录下所有以.log结尾的文件,逐个进行压缩并保留原文件。
6. 通过管道使用lz4处理数据流
将tar打包的文件直接通过管道用lz4压缩,避免生成中间文件:
tar -cf - /home/user/documents | lz4 - documents.tar.lz4
该操作会先打包/home/user/documents目录,再将打包后的数据流直接压缩为documents.tar.lz4,不会生成中间的tar包文件。
注意事项
- 默认情况下lz4压缩后会删除原始文件,如果需要保留原文件一定要加
-k参数 - lz4压缩的文件只能由lz4工具解压,无法用gzip、bzip2等工具处理
- 如果系统没有安装lz4,可以通过
yum install lz4(CentOS/RHEL)或apt install lz4(Ubuntu/Debian)命令安装 - 处理超大文件时,lz4的速度优势会更加明显,比传统压缩工具节省大量时间