介绍如何在 Linux 中安装与使用 Brotli 这个开放原代码的无损压缩工具。
Brotli 是一个开放原代码的无损压缩工具(详细介绍请参考维基百科),其压缩率(compression ratio)在目前通用型压缩方法中算是比较好的,速度与 deflate 方法相近但是有更好的压缩率。关于 Brotli 压缩演算法的标竿测试(benchmark),可以参考以下网站:
Squash Compression Benchmark
Compression Benchmark
Large Text Compression Benchmark
以下介绍在 Linux 环境下,Brotli 压缩工具的安装与使用方式;若在 Windows 系统中要使用 Brotli 压缩或解压缩文件,可以使用 PeaZip 这个开放原代码的压缩工具。
安装 Brotli 压缩工具
若在 Ubuntu Linux 中,可以使用 apt
安装 brotli
套件:
# 安装 brotli 套件(Ubuntu) sudo apt install brotli
若在 CentOS Linux 中,则可使用 yum
安装 brotli
套件:
# 安装 brotli 套件(CentOS) sudo yum install brotli
亦可下载 Brotli 的原代码,自行以 CMake 编译并安装:
# 下载 brotli 原代码 git clone https://github.com/google/brotli.git # 以 CMake 编译并安装 brotli mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release ../brotli/ make -j8 sudo make install
压缩
brotli
压缩工具的参数使用方式跟标准的 gzip
非常类似,不过 brotli
在压缩文件时,默认会保留原始文件。
# 以 Brotli 压缩文件 brotli MyFile.txt
这里的 MyFile.txt
文件经过 brotli
压缩之后,就会产生一个文件名为 MyFile.txt.br
的压缩文件。
若希望在压缩之后自动将原始文件删除,可以加上 --rm
参数:
# 以 brotli 压缩文件(删除原始文件) brotli --rm MyFile.txt
压缩输出文件名
brotli
所产生的压缩文件名称默认的后缀是 .br
,若要更改可以使用 --suffix
参数指定新的后缀,例如:
# 设置压缩文件名后缀为 .b brotli --suffix=.b MyFile.txt
若只压缩单一文件,可以使用 --output
参数指定输出压缩文件的名称:
# 设置压缩文件名为 MyFile.br brotli --output=MyFile.br MyFile.txt
压缩层级
若要指定 brotli
的压缩层级(compression level),可以使用 --quality
参数来指定,可用的压缩层级是 0
到 11
,数字越大代表压缩率越高,但是压缩速度越慢。
# 设置压缩层级为 5 brotli --quality=5 MyFile.txt
若是指定 0
到 9
的,也可以直接以数字参数的方式指定:
# 设置压缩层级为 5 brotli -5 MyFile.txt
若要以最高压缩层级来压缩,可以直接使用 --best
参数:
# 设置压缩层级为最高(11) brotli --best MyFile.txt
解压缩
若要解压缩 Brotli 格式的压缩文件,可以使用 --decompress
参数:
# 解压缩 Brotli 压缩文件 brotli --decompress MyFile.txt.br
串流
若要将压缩或解压缩结果输出至标准输出(standard output),可以加上 --stdout
参数:
# 压缩后输出至标准输出 brotli --stdout MyFile.txt > MyFile.br
解压缩后的数据也可以输出至标准输出:
# 解压缩后输出至标准输出 brotli --decompress --stdout MyFile.txt.br
Brotli 搭配 tar
压缩目录
若要以 Brotli 压缩一整个目录,可以先用 tar
先把整个目录打包后,交给 brotli
压缩:
# Brotli 搭配 tar 压缩目录 tar cf - MyFolder | brotli -o MyFolder.tar.br -
解压缩时则是先以 brotli
解压缩后,再交给 tar
解开目录:
# Brotli 搭配 tar 解压缩目录 brotli -dc MyFolder.tar.br | tar xf -