📜  如何在 Linux 中使用 Pigz 工具更快地压缩文件

📅  最后修改于: 2021-10-28 02:19:45             🧑  作者: Mango

Pigz(gzip 的并行实现)是一个免费的开源多线程压缩软件,用于 Linux 压缩和解压缩文件。 Pigz 发音为“pig-zee”,它使用 zlib 和 pthread 库压缩数据并充分利用许多处理器和内核。 Pigz 可以比 gzip 更快地归档更大的文件,因为它使用线程进行压缩以利用多个 CPU 和内核。换句话说,pigz 执行的操作与 gzip 相同,但它在压缩时将工作分配到多个处理器和内核,从而大大加快了压缩/解压缩过程。下面我们来看看如何在Linux中使用Pigz并行压缩和解压文件。

在 Linux 上安装 Pigz

使用以下命令在 Linux 系统中安装 Pigz:

$ sudo apt install pigz

压缩和解压文件

Pigz 将输入文件分成 128 KB 的块并依次压缩每个块。使用 deflate 压缩方法以 gzip、zlib 或单项 zip 格式创建压缩数据。默认情况下,它以 gzip (.gz) 格式压缩文件。

压缩文件

要以 zip 格式压缩单个文件,请使用以下语法。

$ pigz archlinux-2021.07.01-x86-64.iso

上述命令将压缩指定文件archlinux.iso,并将其保存在当前工作目录中为archlinux.iso.gz。

请注意,压缩 archlinux.iso 后,上述操作将删除原始文件。使用 -k (keep) 告诉 Pigz 如果不想删除原始文件,请不要在处理后删除它。

压缩目录

Pigz本身没有压缩文件夹的能力;它只压缩单个文件。 Pigz 与 tar 命令结合使用以压缩目录作为解决方法。

$ tar --use-compress-program="pigz -k " -cf test.tar.gz test

如何在压缩时限制处理器数量

如前所述,Pigz 在压缩文件时充分利用了多个 CPU 和内核。 -p 开关可用于更改此行为。

例如,以下命令将使用最佳压缩算法和四个处理器压缩文件,同时保留原始文件:

$ pigz -9 -k -p4 archlinux-2021.07.01-86x_64.iso

检查压缩文件的内容

使用 -l 标志列出上述存档文件的内容而不提取它。

$ pigz -l archlinux-2021.07.01-x86-64.iso.gz

解压文件

使用 -d 选项或 unpigz 命令使用 pigz 解压缩文件或目录。我们压缩的 ISO 文件的命令将是:

$ unpigz archlinux-2021.07.01-x86-64.iso.gz
or
$ pigz -d archlinux-2021.07.01-x86-64.iso

因此,如果您有一台现代多处理器、多核机器,并希望在利用所有 CPU 内核的同时尽可能快地压缩更大的文件,pigz 是一个很好的选择!试一试,并在下面的评论中告诉我们您对 Pigz 压缩应用程序的看法。

Pigz 与 Gzip 的比较

使用 Gzip 压缩:

$ time gzip 

使用 Pigz 压缩:

$ time pigz 

使用 Gzip 解压:

$ time gzip -d test.tar.gz

使用 Pigz 解压:

$ time pigz -d test.tar.gz

我们可以清楚地看到,在压缩和解压的两个花瓶中,pigz 都比 gzip 快。