使用 Zstandard (zstd) 进行无损实时数据压缩


井然有序的数据压缩是有效数据管理的重要组成部分。它使我们能够节省磁盘空间,减少数据传输时间,并提高整体数据效率。在众多逐年普及的数据压缩工具中,zstd 凭借其高性能脱颖而出。zstd 由 Yann Collet 开发,是一个开源软件,它在保持快速解压缩速度的同时提供了令人印象深刻的压缩率。

Zstd 是一种灵活且适应性强的 数据压缩工具,适用于压缩各种类型的数据,例如文本、图像、音频和视频等。此外,它与多个平台兼容,包括 Linux、Windows、MacOS 和 FreeBSD,使其成为不同用户可靠且易于访问的工具。此外,zstd 的灵活性还体现在其用户友好的命令行界面上,该界面包含多个选项和功能。

在本文中,我们将详细解释 zstd,探讨其工作原理以及如何安装它。此外,我们将提供有关如何使用 zstd 压缩和解压缩文件的实用示例,并演示其一些高级功能,例如多线程、字典学习和压缩级别等。在阅读完本文后,您将全面了解 zstd 以及如何利用它来满足您的数据压缩需求。

在 Linux 上安装 Zstandard

Zstandard 在大多数 Linux 发行版的官方软件库中都可用,因此可以使用包管理器轻松安装。下面列出了在 Ubuntu 上安装它的一些命令:

安装 Zstandard 的输入命令

sudo apt-get update
sudo apt-get install zstd

输出将提供有关 Zstandard 更新和安装的所有详细信息

user@ubuntu:~$ sudo apt-get update
[sudo] password for user: 
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease                
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]             
Get:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]             
Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1,341 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [784 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [236 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [44.7 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [11.6 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [959 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [172 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [341 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [70.1 kB]
Get:14 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [12.9 kB]
Get:15 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [900 kB]
Get:16 http://us.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [197 kB]
Get:17 http://us.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [8,680 B]
Get:18 http://us.archive.ubuntu.com/ubuntu focal-backports/main Translation-en [4,156 B]
Fetched 5,297 kB in 5s (1,163 kB/s)                          
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
user@ubuntu:~$ sudo apt-get install zstd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  zstd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 249 kB of archives.
After this operation, 1,120 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 zstd amd64 1.4.5+dfsg-4 [249 kB]
Fetched 249 kB in 1s (177 kB/s)    
Selecting previously unselected package zstd.
(Reading database ... 233077 files and directories currently installed.)
Preparing to unpack .../archives/zstd_1.4.5+dfsg-4_amd64.deb ...
Unpacking zstd (1.4.5+dfsg-4) ...
Setting up zstd (1.4.5+dfsg-4) ...
Processing triggers for man-db (2.9.1-1) ...
user@ubuntu:~$ 

成功安装 Zstandard 后,我们现在可以进入下一节学习 Zstd 命令示例的一些基本用法。

如何在 Linux 中使用“Zstd”命令的不同示例列表

1. 压缩文件

要使用 Zstd 压缩文件,请使用命令“zstd filename”。默认压缩级别为 3,但我们可以使用“-# (数字)”进行调整。Zstd 非常适合大型文件,可以减小其大小,以便于存储和传输。它还具有快速解压缩速度,便于在不损失效率的情况下轻松恢复。Zstd 是一个简单而强大的工具,可以改进 Linux 系统上的数据管理。

压缩文件的输入命令

zstd example.txt

zstd 命令的输出

user@ubuntu:~$ zstd example.txt
user@ubuntu:~$

2. 解压缩文件

当您要解压缩使用 Zstd 压缩的文件时,请使用命令“zstd -d”,后跟压缩文件的名称。例如,“zstd -d example.txt.zst”将恢复压缩文件到其原始格式。Zstd 的高压缩率和快速解压缩速度使其成为在 Linux 上管理大型文件的可靠高效方法。

解压缩文件的命令

zstd -d example.txt.zst

3. 压缩目录

使用 Zstd 命令压缩整个目录非常简单。我们只需使用命令“tar cf - directory_name/ | zstd > compressed_file_name.tar.zst”即可。例如,假设我们有一个名为“example”的目录,我们想要压缩它并创建一个名为“example.tar.zst”的压缩文件。我们需要在终端中运行此命令“tar cf - example/ | zstd > example.tar.zst”。这将把整个目录压缩到单个文件中,您可以使用此命令。

压缩目录的输入命令

tar cf - example/ | zstd > example.tar.zst

4. 解压缩目录

要在 Linux 中解压缩 Zstd 压缩的目录,可以使用命令“zstd -d example.tar.zst | tar xvf -”。使用“-d”选项指定压缩文件的名称。“tar”命令使用“-xvf”选项提取档案文件的内容。请记住,在解压缩之前备份压缩的目录,以避免用相同名称的现有目录覆盖。

解压缩目录的输入

zstd -d example.tar.zst | tar xvf -

“zstd -d”命令的输出

$ zstd -d example.tar.zst | tar xvf -
example/
example/file1.txt
example/file2.txt
example/file3.txt

5. 多线程压缩

如果您有一个需要快速压缩的大文件,我们可以使用 Zstd,这是一种快速压缩工具,它利用多个 CPU 内核来提高压缩速度。通过编写此命令“zstd -T0 example.txt”,您可以激活多线程压缩,线程数为 0,这将允许 Zstd 使用所有可用的 CPU 内核来压缩文件“example.txt”。通过这种方式,您可以在 Linux 中激活多线程压缩。

多线程压缩的输入命令

zstd -T0 example.txt

此命令的输出可能如下所示

zstd -T0 example.txt
example.txt         : 100%   [==================================================================================================]  10.00 MiB/s  2.20:1  

6. 设置压缩级别

Zstd 有 22 个压缩级别,在压缩率和速度之间取得了不同的平衡。使用“zstd -<level> <file>”命令设置文件的压缩级别。较高的级别需要更多的 CPU 资源和时间。选择合适的压缩级别以获得最佳结果。

设置压缩级别的输入命令

zstd -3 example.txt

zstd 压缩级别的输出

example.txt             :  10.00 MB
--
example.txt         :  3.55 MB        (35.45%)   (x3.18)
--

结论

总之,Zstandard 是一种宝贵的压缩工具,可以节省磁盘空间并加快数据传输速度。在 Linux 上安装 zstd 非常简单,并且使用它来压缩和解压缩文件也很容易。我们相信本文帮助您开始使用 zstd,并指导您如何使用它来增强您的数据压缩需求。

更新于:2023-07-28

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告