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 快。