首页/系统/Linux 运维命令速查/zstd 压缩与解压(.zst)
文件与目录76 条

zstd 压缩与解压(.zst)

Facebook 开源的新一代压缩:速度接近 gzip、压缩率接近 xz,现代日志归档与镜像分发的首选。

Linux 运维命令速查系统更新于 2026-10-13

zstd 是什么

zstd 是 Facebook 开源的新一代压缩工具,速度与 gzip 同档而压缩率接近 xz,并支持多线程与长距离匹配。现代日志归档、软件包分发、容器镜像层传输大量使用 .zst 格式,多数发行版已原生支持。

基本信息

适用平台Linux / Unix,主流发行版有包;Windows 与 macOS 亦有官方版本
命令语法zstd [选项] 文件;解压用 zstd -d
常用选项-k 保留原文件、-1 到 -19 级别、--ultra 允许 20-22、-T 线程数、-d 解压、-t 校验
tar 联动GNU tar 1.31 起支持 --zstd,更早版本用 -I 指定压缩器

典型使用场景

  • 日志归档:压缩率与速度平衡好,替换 gzip 能显著省空间
  • 软件包与镜像分发:发行版原生支持,解压端通常无需额外依赖
  • 数据库导出备份:大文件用 -T 多线程压缩,缩短备份窗口
  • 冷数据极限压缩:用 --ultra -22 换取更小体积
  • 分级存储:热数据用低级别保速度,冷数据用高级别省空间

常用示例

常用示例
zstd -k -19 backup.sql              # 保留原文件,级别 19
zstd -d backup.sql.zst              # 解压(默认解压后删除 .zst)
zstd -T0 -19 --long=27 big.dump     # 多线程 + 长距离匹配,适合大文件
zstd -t backup.sql.zst              # 只做完整性校验
tar -c --zstd -f app.tar.zst dir/   # tar 直接输出 .zst
tar -xf app.tar.zst -I 'zstd -T4'   # 旧版 tar 手动指定压缩器与线程
zstd -l *.zst                       # 列出压缩包信息

级别与场景

级别或参数压缩率与速度适用场景
-1 到 -3最快,-3 为默认日常归档、需要快速解压的场景
-9 到 -19压缩率提升,速度下降需要长期保留的数据
--ultra -22最高压缩率,内存消耗大冷数据、一次性归档
--long=27启用长距离匹配重复内容间距远的大文件
-T0使用全部核心大文件并行压缩,内存开销随之上升
默认级别 3 的速度与压缩率已经优于 gzip 同档设置,多数场景不必调到高级别。
级别越高压缩时的内存占用越大,小内存机器批量压缩建议用 -6 到 -10 并配合 -T 控制并发。
zstd 压缩成功后默认删除原文件,脚本里务必加 -k,否则源文件会消失。

易错点

  • 旧版 tar 使用 --zstd 会报无法识别的选项,改用 -I 'zstd' 并确认解压端能识别该格式
  • 低优先级后台任务使用最高级别会长时间占满 CPU,改用 --adapt 自适应压缩更稳
  • 忘记加 -k 会让压缩成功后源文件被删除,脚本中的备份流程尤其危险
  • 小文件批量压缩用 -T0 反而增加调度开销,此时默认单线程更快

数据来源与参考

  • zstd 官方手册(facebook/zstd 项目文档)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌