猪, 短缺 p平行的 一世的实施 广州ip,是一个免费的开源多线程压缩实用程序,用于在 Linux 中压缩和解压缩文件。 Pigz,发音为 猪仔, 使用 zlib 和 线程 库,并在压缩数据时充分利用多处理器和多核。 由于 pigz 使用线程压缩以利用多个处理器和内核,它可以比 gzip 更快地归档更大的文件。 简单地说,pigz 做了 gzip 的工作,但它在压缩时将工作分配给多个处理器和内核,并显着加快了压缩/解压缩过程。 在本指南中,让我们学习在 Linux 中使用 Pigz 并行压缩和解压缩文件。
内容
在 Linux 上安装 Pigz
Pigz 在流行的 Linux 操作系统的官方存储库中可用。
在 Arch Linux 及其变体 曼扎罗 Linux,启用 [Community] 存储库并使用命令安装 Pigz:
$ sudo pacman -S pigz
在 CentOS 8/7/6:
$ sudo yum install pigz
在 Debian:
$ sudo apt-get install pigz
在 Fedora:
$ sudo dnf install pigz
在 Ubuntu, Linux 薄荷糖:
$ sudo add-apt-repository universe
$ sudo apt install pigz
在 openSUSE:
$ sudo zypper install pigz
在其他 Linux 发行版上,从源代码编译和安装,如下所示。
首先,确保您已安装以下先决条件:
- 制作
- 海合会
- zlib-开发
例如,在基于 Debian 的系统上,您可以使用以下命令安装上述软件包:
$ sudo apt install make gcc zlib-devel
在基于 RPM 的系统上:
$ sudo yum install make gcc zlib-devel
然后从官网下载最新的Pigz版本(链接在文末):
$ wget https://zlib.net/pigz/pigz-2.4.tar.gz
提取 pigz tar 文件:
$ tar -xzvf pigz-2.4.tar.gz
此命令将提取名为的文件夹中的内容 pigz-2.4 在当前工作目录中。
光盘进入“pigz-2.4”目录:
$ cd pigz-2.4
使用以下命令编译并安装它:
$ make
例如,将 pigz 二进制文件复制到 $PATH /usr/local/bin:
$ sudo cp pigz /usr/local/bin/
注销并重新登录以开始使用 pigz。
使用 Pigz 并行压缩和解压缩文件
Pigz将给定的输入分成 128 KB 块并并行压缩它们中的每一个。 生成的压缩数据格式为 gzip、zlib 或使用 deflate 压缩方法的单项 zip 格式。 默认情况下,它压缩文件 压缩包 (.gz) 格式。
让我给你看一些实际的例子。 出于本指南的目的,我将使用 archlinux.iso 文件大小 677.4 MB) 供测试用。
压缩文件
要使用默认选项压缩文件,只需运行:
pigz <path-to-file>
例子:
$ pigz archlinux.iso
上面的命令将压缩给定的文件,即 archlinux.iso 并将其另存为 archlinux.iso.gz 在当前工作目录中。
请注意,上述命令会在压缩后删除原始文件即archlinux.iso。 如果您不想删除原始文件,请使用 -k (keep) 指示 Pigz 处理后不要删除原始文件。
$ pigz -k archlinux.iso
列出存档文件的内容
要列出上述存档文件的内容,而不提取它,请使用 -l 旗帜。
$ pigz -l archlinux.iso.gz compressed original reduced name 654901763 677380096 3.3% archlinux.iso
正如您在上面的输出中看到的,输入文件的大小比原来的大小减少了 3.3%。
指定压缩方法
Pigz 支持以下压缩方式:
- 最慢和最佳压缩 (-9)
- 最快和更少的压缩 (-1)
- 无压缩 (-0)
- 默认压缩 (-6)
例如,要使用最佳压缩方法(慢速)压缩文件,请运行:
$ pigz -9 archlinux.iso
以较少压缩(快速)压缩文件:
$ pigz -1 archlinux.iso
无压缩:
$ pigz -0 archlinux.iso
更改压缩格式
默认情况下,它将输出文件保存在 压缩包 格式。 但是,您可以将其更改为不同的格式。
以下命令将给定文件压缩为 zlib (.zz) 而不是 gzip 格式:
$ pigz -k -z archlinux.iso
在这里,我们使用了 -k (小写)压缩后保留原始文件。
同样,将文件压缩到 压缩 格式,使用 -K (大写)标志:
$ pigz -k -K archlinux.iso
压缩目录
Pigz 没有任何选项可以直接压缩文件夹。 但是,我们可以通过结合 柏油 使用 pigz 的命令如下所示。
$ tar cf - Pictures/ | pigz > pictures.tar.gz
上述命令将压缩图片文件夹并将其保存为pictures.tar.gz 文件。
作为我们的读者之一 瓦兹 在下面的评论部分中说过,我们还可以使用 tar 中的“use-compress-program”参数来运行 pigz,而不是通过管道输出。
例子:
$ tar --use-compress-program=pigz -cf yourfile.tar.gz folder1 folder2
压缩时限制处理器数量
就像我已经说过的,Pigz 在压缩文件时充分利用了多个处理器和内核。 您可以使用更改此行为 -p 旗帜。
例如,以下命令将使用最佳压缩方法和 4 个处理器压缩文件并保留原始文件:
$ pigz -9 -k -p4 archlinux.iso
要查找 Linux 中的处理器内核数量,请参阅以下指南:
- 如何在 Linux 中从命令行查找 CPU 核心数
解压文件
我们可以使用 猪-d 或者 解压 命令。
$ pigz -d archlinux.iso.gz
或者,
$ unpigz archlinux.iso.gz
有关更多详细信息,请参阅帮助部分和手册页:
$ pigz --help
$ man pigz
Gzip 与 Pigz – 性能比较
我测试了 archlinux.iso (尺寸 677.4 MB) 文件与 Pigz 和 Gzip 实用程序。 结果如下:
使用 Gzip 压缩:
$ time gzip archlinux.iso real 0m35.086s user 0m32.719s sys 0m1.333s
使用 Pigz 进行压缩:
$ time pigz archlinux.iso real 0m12.545s user 0m46.376s sys 0m1.520s
使用 Gzip 解压:
$ time gzip -d archlinux.iso.gz real 0m6.847s user 0m5.621s sys 0m0.783s
用 Pigz 解压:
$ time unpigz archlinux.iso.gz real 0m2.398s user 0m2.370s sys 0m1.931s