快速压缩工具zstd(zstandard)是由facebook开源的快速无损压缩算法,主要应用于zlib级别的实时压缩场景,并且具有更好的压缩比(5:1),压缩速度快。

#安装(centos为例)
yum isntall zstd
或者下载源码包安装
wget https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
tar -zxvf zstd-1.5.2.tar.gz
cd zstd-1.5.2
make && make install
#Ubuntu安装
apt install zstd
编译安装
git clone https://github.com/facebook/zstd.git
cd zstd
make && make install

#压缩单个文件,会生成一个以.zst结尾的新文件
zstd file_name

#压缩目录-r,会对目录下的每个子文件进行压缩,为每个字文件生成.zst
zstd -r dir_name

#解压-d
zstd -d file_name.zst

#查看zst压缩包
zstd -l file_name.zst
zstdcat file_name.zst

参数命令

$ zstd --help
使用方式 :
      zstd [args] [FILE(s)] [-o file]
 
参数选项 :
 -#     : 压缩级别(1-19,默认值为3)
 -d     : 解压
 -D file: 使用文件作为字典
 -o file: 结果存储在文件中
 -f     : 在没有提示的情况下覆盖输出并(解压)压缩链接
--rm    : 成功解压缩后删除源文件
 -k     : 保存源文件(默认)
 -h/-H  : 显示帮助/长帮助并退出
 
高级选项 :
 -V     : 显示版本号并退出
 -v     : 详细模式
 -q     : 静默输出
 -c     : 强制写入标准输出
 -l     : 输出zstd压缩包中的信息
--ultra : 启用超过19级,最多22级(需要更多内存)
 -T#    : 使用几个线程进行压缩(默认值:1个)
 -r     : 递归地操作目录
--format=gzip : 将文件压缩为.gz格式
 -M#    : 为解压设置内存使用限制
 
字典生成器 :
--train ## : 从一组训练文件中创建一个字典
--train-cover[=k=#,d=#,steps=#] : 使用带有可选参数的cover算法
--train-legacy[=s=#] : 有选择性地使用遗留算法(默认值:9)
 -o file : “file”是字典名(默认:字典)
--maxdict=# : 将字典限制为指定大小(默认值:112640)
--dictID=# : 强制字典ID为指定值(默认:随机)
 
性能测试参数 :
 -b#    : 基准测试文件,使用#压缩级别(默认为1)
 -e#    : 测试从-bX到#的所有压缩级别(默认值:1)
 -i#    : 最小计算时间(秒)(默认为3s)
 -B#    : 将文件切成大小为#个独立块(默认:无块)
--priority=rt : 将进程优先级设置为实时

高级用法

# 输出详细信息
$ zstd -v file
$ zstd -v -d file.zst
 
# 压缩一个文件同时指定压缩级别(19最高,0最低,3为默认)
$ zstd -level file
$ zstd -9 file
 
# 使用更多的内存(压缩和解压时)以达到更高的压缩比
$ zstd --ultra -level file
 
# 解压缩为单进程
# 多个进程并发执行压缩过程(0表示自动使用所有CPU核心)
$ zstd -T0 file
$ zstd -T4 file
$ zstd -T4 -d file.zst

参考文档

轻松使用zstd来解压缩_一只牛_007的博客-CSDN博客_zst文件怎么解压

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐