IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Linux 下的高效压缩工具 Zstandard

    Teacher Du发表于 2025-05-06 08:20:35
    love 0

    Zstandard 以其卓越的性能和丰富的功能,成为了 Linux 下一款不可或缺的压缩工具。无论是对单个文件还是整个目录的压缩和解压,它都可以轻松应对,且在处理速度和压缩效果上都有着出色的表现。

    Zstandard 的简介

    Zstandard 是由 Facebook 开发并开源的一种快速无损压缩算法,2015 年首次发布以来,凭借其高压缩比和快速的解压缩速度,逐渐受到了开发者青睐。

    它不仅在压缩效率上超越传统的 gzip 等工具,还能在保持高压缩率的同时,实现极快解压速度,特别适合对数据处理效率要求较高的场景,如大数据处理、日志压缩、网络数据传输等等。

    Zstandard 的特点

    高压缩比:通常情况下 Zstandard 能够获得比 gzip 更好压缩效果,有效减少数据存储空间。

    快速解压:其解压缩速度极快,即使是低压缩等级,解压速度也能远超一些 SSD 的读取速度,大大提高了数据的读取效率。

    多线程的支持:Zstandard 自带多线程压缩功能,可以充分利用多核 CPU 的性能,大幅提升压缩速度。例如,在处理大量数据时,多线程压缩能够显著的缩短压缩时间,提高工作效率。

    丰富压缩级别选择:提供了从 1 到 22 的压缩级别选择,用户可根据实际需求在压缩速度和压缩率之间进行灵活权衡。压缩级别越高,压缩比率越大,但压缩速度会相应减慢;反之,压缩级别越低,压缩速度越快,但压缩比率会有所降低。

    字典压缩模式:Zstandard 为小数据提供一种特殊的字典压缩模式。用户可通过提供一些样本数据来训练生成字典,然后在压缩和解压时加载该字典,从而在小数据上实现更高压缩率,这对于处理大量小文件场景非常有用。

    使用模式: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
    2
    3
    4
    5
    wget https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz
    tar -zxvf zstd-1.5.7.tar.gz
    cd zstd-1.5.7/
    make
    sudo make install

    Zstandard 的使用

    1. 压缩文件

    基础压缩:使用命令 zstd file_name 即可对文件进行压缩,压缩后会生成一个扩展名为.zst 的文件,如 zstd doc.txt,会生成 doc.txt.zst 文件。

    指定压缩级别:可通过选项来指定压缩级别,例如 zstd -3 file_name 表示使用压缩级别-3 进行压缩。

    1. 解压文件

    基础解压:使用 zstd -d archive_name.zst 即可对文件进行解压,解压后的文件会自动去除.zst 后缀。

    指定解压后文件名:同样可使用-o 选项来指定解压后的文件名,如 zstd -d archive_name.zst -o new_file_name。

    1. 压缩目录

    压缩整个目录:可以使用 zstd -rz directory_name 来压缩整个目录,其中-r 表示递归压缩目录中所有文件和子目录,-z 表示压缩的操作。

    解压目录:对于压缩后的目录文件,使用 zstd -dr archive_name.zst 进行解压缩,-d 表示解压缩操作,-r 表示递归解压缩。

    1. 查看压缩文件内容

    使用 zstd -l archive_name.zst 可以查看压缩文件的相关信息,如压缩比、压缩级别、文件大小等等。

    而 zstd -t archive_name.zst 则可用于测试压缩文件的完整性,确保文件在压缩和传输过程中未损坏。



沪ICP备19023445号-2号
友情链接