Zstandard (也被称为zstd )是一款免费的开源,快速实时数据压缩程序,具有更好的压缩比,由Facebook开发。 它是用C语言编写的无损压缩算法 (在Java中有一个重新实现) - 因此它是一个本地Linux程序。
另请参阅 : Linux中的10 7zip(Data Comperssion)命令示例
当需要时,它可以将压缩速度交换为更高的压缩比率(压缩速度与压缩比率的权衡可以通过小增量来配置),反之亦然。 它具有小数据压缩的特殊模式,称为字典压缩,可以从任何提供的样本集中构建字典。 它带有一个命令行实用程序,用于创建和解码.zst , .gz , .xz和.lz4文件。
重要的是, Zstandard拥有丰富的API集合,支持几乎所有流行的编程语言,包括Python,Java,JavaScript,Nodejs,Perl,Ruby,C#,Go,Rust,PHP,Switft等等。
它被积极用于压缩Facebook中多种格式和用例的大量数据; 服务,如Amazon Redshift数据仓库; 数据库,如Hadoop和Redis; Tor网络和许多其他应用程序,包括游戏。
通过使用lzbench (一种开源内存基准测试工具)在运行Linux Debian的服务器上执行多个快速压缩算法测试,可以获得以下结果。
如何在Linux中安装Zstandard压缩工具
要在Linux发行版上安装Zstandard ,您需要从源代码进行编译,但在此之前,您需要使用发行包管理器在系统上安装必要的开发工具,如图所示。
$ sudo apt update && sudo apt install build-essential #Ubuntu/Debian
# yum group install "Development Tools" #CentOS/REHL
# dnf groupinstall "C Development Tools and Libraries" #Fedora 22+
一旦安装了所有需要的开发工具,现在您可以下载源软件包,进入本地repo目录,构建二进制文件并按照所示进行安装。
$ cd ~/Downloads
$ git clone https://github.com/facebook/zstd.git
$ cd zstd
$ make
$ sudo make install
一旦安装了Zstandard ,现在我们可以进一步学习以下部分中有关Zstd命令示例的一些基本用法。
在Linux中学习10个Zstd命令使用示例
Zstd的命令行语法通常与gzip和xz工具类似,但有一些差异。
1.要创建.zst
压缩文件,只需提供一个压缩文件名即可,或者使用-z
标志也意味着压缩,这是默认操作。
$ zstd etcher-1.3.1-x86_64.AppImage
OR
$ zstd -z etcher-1.3.1-x86_64.AppImage
2.要解压缩.zst
压缩文件,请使用-d
标志或unzstd实用程序,如图所示。
$ zstd -d etcher-1.3.1-x86_64.AppImage
OR
$ unzstd etcher-1.3.1-x86_64.AppImage
3.要在操作后删除源文件,默认情况下,源文件在成功压缩或解压缩后不会被删除,要删除它,请使用--rm
选项。
$ ls etcher-1.3.1-x86_64.AppImage
$ zstd --rm etcher-1.3.1-x86_64.AppImage
$ ls etcher-1.3.1-x86_64.AppImage
4.要设置压缩级别,zstd具有许多操作修饰符,例如,您可以指定压缩级别为-6
(数字1-19,默认值为3),如图所示。
$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage
5.要设置压缩速度,zstd的压缩速度比率为1-10 ,默认压缩速度为1 。 您可以使用--fast
选项--fast
压缩速度的压缩比,数字越高压缩速度越快。
$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage
6.要显示有关压缩文件的信息,请使用-l
标志,例如用于显示有关压缩文件的信息。
$ zstd -l etcher-1.3.1-x86_64.AppImage.zst
7.要测试压缩文件的完整性,请使用-t
标志,如图所示。
$ zstd -t etcher-1.3.1-x86_64.AppImage.zst
8.要启用详细模式,请使用-v
选项。
$ zstd -v -5 etcher-1.3.1-x86_64.AppImage
9.使用其他文件压缩或解压缩格式,例如gzip,xz,lzma和lz4,使用--format=FORMAT
,如图所示。
$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
$ zstd -v --format=xz etcher-1.3.1-x86_64.AppImage
10.要将zstd进程优先级设置为实时,可以使用选项-priority = rt ,如图所示。
$zstd --priority=rt etcher-1.3.1-x86_64.AppImage
-r
标志指示zstd在字典上递归操作。 您可以找到许多有用的高级选项,以及如何通过查阅zstd手册页来阅读或创建词典。
$ man zstd
Zstandard Github存储库 : https : //github.com/facebook/zstd
Zstandard是一种快速的实时无损数据压缩算法和压缩工具,可提供高压缩比。 尝试一下,分享您的想法或通过下面的反馈表格提问。