Zstandard 以其卓越的性能和丰富的功能,成为了 Linux 下一款不可或缺的压缩工具。无论是对单个文件还是整个目录的压缩和解压,它都可以轻松应对,且在处理速度和压缩效果上都有着出色的表现。
Zstandard 是由 Facebook 开发并开源的一种快速无损压缩算法,2015 年首次发布以来,凭借其高压缩比和快速的解压缩速度,逐渐受到了开发者青睐。
它不仅在压缩效率上超越传统的 gzip 等工具,还能在保持高压缩率的同时,实现极快解压速度,特别适合对数据处理效率要求较高的场景,如大数据处理、日志压缩、网络数据传输等等。
高压缩比:通常情况下 Zstandard 能够获得比 gzip 更好压缩效果,有效减少数据存储空间。
快速解压:其解压缩速度极快,即使是低压缩等级,解压速度也能远超一些 SSD 的读取速度,大大提高了数据的读取效率。
多线程的支持:Zstandard 自带多线程压缩功能,可以充分利用多核 CPU 的性能,大幅提升压缩速度。例如,在处理大量数据时,多线程压缩能够显著的缩短压缩时间,提高工作效率。
丰富压缩级别选择:提供了从 1 到 22 的压缩级别选择,用户可根据实际需求在压缩速度和压缩率之间进行灵活权衡。压缩级别越高,压缩比率越大,但压缩速度会相应减慢;反之,压缩级别越低,压缩速度越快,但压缩比率会有所降低。
字典压缩模式:Zstandard 为小数据提供一种特殊的字典压缩模式。用户可通过提供一些样本数据来训练生成字典,然后在压缩和解压时加载该字典,从而在小数据上实现更高压缩率,这对于处理大量小文件场景非常有用。
使用模式:Zstandard 提供了多种命令模式,包括压缩、解压、查看压缩信息、测试压缩文件等等。
Debian/Ubuntu 系统的安装命令如下:
1 | sudo apt install zstd |
Fedora/Red Hat/CentOS/AlmaLinux 系统的安装命令如下:
1 | sudo dnf install zstd |
Arch Linux/Manjaro 系统的安装命令如下:
1 | sudo pacman -S zstd |
也可以从源码编译安装「这里以 1.5.7
版本为例」命令如下:
1 | wget https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz |
基础压缩:使用命令 zstd file_name
即可对文件进行压缩,压缩后会生成一个扩展名为.zst
的文件,如 zstd doc.txt
,会生成 doc.txt.zst
文件。
指定压缩级别:可通过选项来指定压缩级别,例如 zstd -3 file_name
表示使用压缩级别-3
进行压缩。
基础解压:使用 zstd -d archive_name.zst
即可对文件进行解压,解压后的文件会自动去除.zst
后缀。
指定解压后文件名:同样可使用-o
选项来指定解压后的文件名,如 zstd -d archive_name.zst -o new_file_name
。
压缩整个目录:可以使用 zstd -rz directory_name
来压缩整个目录,其中-r
表示递归压缩目录中所有文件和子目录,-z
表示压缩的操作。
解压目录:对于压缩后的目录文件,使用 zstd -dr archive_name.zst
进行解压缩,-d
表示解压缩操作,-r
表示递归解压缩。
使用 zstd -l archive_name.zst
可以查看压缩文件的相关信息,如压缩比、压缩级别、文件大小等等。
而 zstd -t archive_name.zst
则可用于测试压缩文件的完整性,确保文件在压缩和传输过程中未损坏。