zstd 文件压缩和解压命令

The past is Death’s, the future is thine own;

——《伊斯兰的反叛》英/珀西·比希·雪莱

Zstandard,或简称为 zstd ,是一种快速无损压缩算法,针对 zlib 级别的实时压缩场景和更好的压缩率。它由Huff0 和 FSE 库提供的非常快的熵阶段支持。

一、算法对比

Compressor name Ratio Compression Decompress.
zstd 1.4.5 -1 2.884 500 MB/s 1660 MB/s
zlib 1.2.11 -1 2.743 90 MB/s 400 MB/s
brotli 1.0.7 -0 2.703 400 MB/s 450 MB/s
zstd 1.4.5 –fast=1 2.434 570 MB/s 2200 MB/s
zstd 1.4.5 –fast=3 2.312 640 MB/s 2300 MB/s
quicklz 1.5.0 -1 2.238 560 MB/s 710 MB/s
zstd 1.4.5 –fast=5 2.178 700 MB/s 2420 MB/s
lzo1x 2.10 -1 2.106 690 MB/s 820 MB/s
lz4 1.9.2 2.101 740 MB/s 4530 MB/s
zstd 1.4.5 –fast=7 2.096 750 MB/s 2480 MB/s
lzf 3.6 -1 2.077 410 MB/s 860 MB/s
snappy 1.1.8 2.073 560 MB/s 1790 MB/s

二、zstd 文件压缩和解压命令

Ubuntu 安装 zstd

1
sudo apt install -y zstd && zstd --version

单个文件

单个文件
压缩 zstd a.sql
解压 zstd -d a.sql.zst
tar解压 tar -I zstd -xvf a.zst
tar解压(tar-1.31及以上版本) tar xvf s.tar.zst

压缩文件夹(和tar整合)

压缩文件夹(和tar整合)
方法一 tar cvf nginx.tar /etc/nginx;zstd nginx.tar
方法二 tar -I zstd -cvf nginx.tar.zst /etc/nginx
方法三(tar-1.31及以上版本) tar cvfa nginx.tar.zst /etc/nginx
方法四(tar-1.31及以上版本,不建议,太慢) tar cvfz nginx.tar.zst /etc/nginx

三、pzstd 并行压缩

上述命令中替换 zstd 为 pzstd,实测效率略微上升

Reference

  1. facebook/zstd
  2. zstd文件压缩和解压命令
  3. 介绍一个高效的压缩工具