使用 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,并指导您如何使用它来增强您的数据压缩需求。