
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz81. 命令简介pigz (Parallel Implementation of GZip) 是 GNU gzip 的并行实现版本用于文件的压缩与解压缩。其最大特点是支持多线程并行处理能够充分利用多核 CPU 的性能显著提升大文件的压缩和解压缩速度尤其适用于现代多处理器系统。unpigz 是 pigz -d 的等效命令专门用于解压缩提供了便捷的操作方式。项目主页http://zlib.net/pigz/2. 语法格式bash运行pigz [选项] [文件 ...] unpigz [选项] [文件 ...]语法详解pigz默认操作为压缩输入文件将被压缩为 .gz 格式除非通过 -S 或 -K、-z 指定其他格式。 unpigz默认操作为解压缩是 pigz -d 的快捷方式。 文件可以指定一个或多个文件或目录配合 -r 选项。如果未指定文件或文件名为 -则从标准输入读取数据。3. 常用选项及说明压缩级别与算法选项表格选项长格式说明-0 ... -9设置压缩级别。-1 最快但压缩率最低-9 最慢但压缩率最高。默认级别为 -6。-11使用 Zopfli 算法进行极致压缩压缩率最高但速度非常慢。--fast等同于 -1。--best等同于 -9。注意-11 比 --best 压缩率更高。-F--first在使用 -11 (Zopfli) 时先进行整体迭代优化再进行分块。-I n--iterations n为 -11 优化设置迭代次数默认 15。-J n--maxsplits n为 -11 设置最大分块数默认 15。-O--oneblock在使用 -11 时不将文件分割成更小的块进行处理。-R--rsyncable生成 rsync 友好的压缩文件。输入数据决定分块位置便于 rsync 高效传输增量变化。-z--zlib压缩为 zlib 格式后缀 .zz而非 gzip 格式。-K--zip压缩为 PKZIP 格式单条目 .zip 文件。输入输出与文件操作表格选项长格式说明-c--stdout将输出写入标准输出保留原始文件。-d--decompress解压缩模式。-f--force强制覆盖输出文件压缩链接指向的实际文件允许输出到终端。-k--keep处理压缩或解压后保留原始输入文件。-S .sss--suffix .sss指定压缩文件的后缀例如 -S .pigz默认为 .gz。-r--recursive递归处理目录及其子目录下的所有文件。-t--test测试压缩文件的完整性。-l--list列出压缩文件的内容如压缩率、未压缩大小等。-L--license显示软件许可证信息并退出。-Y--synchronous强制将输出文件同步写入永久存储更安全但更慢。并行处理与性能调优表格选项长格式说明-p n--processes n设置允许使用的最大压缩线程数。默认值为检测到的在线处理器核心数若无法检测则默认为 8。这是提升速度的关键选项。-b mmm--blocksize mmmK设置压缩块的大小例如 -b 256K。默认值为 128K。更大的块可能提升压缩率但占用更多内存。-i--independent独立压缩每个块。这样即使文件部分损坏未损坏的部分仍可恢复但会略微降低压缩率。元数据处理表格选项长格式说明-n--no-name压缩时不保存原始文件名和时间戳解压时不恢复它们。-N--name压缩时保存原始文件名和时间戳解压时恢复它们。这是默认行为。-m--no-time不存储或恢复文件的修改时间。-M--time存储或恢复文件的修改时间。信息输出表格选项长格式说明-h--help显示帮助信息。-v--verbose显示更详细的处理信息。-q--quiet静默模式即使出错也不打印信息。-V--version显示版本信息。--此符号后的所有参数均被视为文件名用于处理以 - 开头的文件名。4. 示例用法基础压缩与解压压缩单个文件使用默认线程数bash运行pigz large_file.log生成 large_file.log.gz原文件默认被删除。压缩文件并保留原文件bash运行pigz -k data.csv使用 4 个线程压缩文件bash运行pigz -p 4 data.tar解压缩文件bash运行pigz -d archive.gz # 或使用快捷命令 unpigz archive.gz高级用法递归压缩目录下的所有文件bash运行pigz -r my_project/将 my_project/ 目录下的每个文件单独压缩成 .gz 文件。压缩并输出到标准输出用于管道操作bash运行tar cf - directory/ | pigz -c directory.tar.gz结合 tar 命令将目录打包后直接通过管道压缩。生成 rsync 友好的压缩包bash运行pigz -R -k bigdata.db生成 bigdata.db.gz当源文件有小改动时rsync 可以高效地同步压缩后的文件。测试压缩文件的完整性bash运行pigz -t backup.tar.gz列出压缩文件信息bash运行pigz -l data.gz5. 注意事项线程数选择-p 选项设置的线程数并非越多越好。超过物理核心数可能会因上下文切换导致性能下降。通常设置为 CPU 核心数或略高即可。内存使用并行压缩会占用更多内存因为每个线程都需要处理数据块。使用更大的块大小-b也会增加内存消耗在资源受限的环境中需注意。输出到标准输出当使用 -c 选项将输出重定向到标准输出时原文件默认不会被删除与不使用 -c 时的行为不同。文件名处理-n 和 -N 选项控制是否在压缩文件中存储原始文件名。如果解压时没有存储文件名则输出文件将根据压缩文件名推断如解压 file.gz 得到 file。递归压缩-r 选项是对目录中的每个文件进行单独压缩而不是像 tar 那样将整个目录打包成一个文件。若需打包整个目录应结合 tar 命令使用。