最近搞项目,资料太大,解压时间太久,于是想办法解决。
开贴记录。
1.安装pigz
sudo apt install pigz
2.解压资料
解压命令为
tar --use-compress-program=pigz -xvpf   ***.tar.gz将最后的部分***.tar.gz换成你自己的文件即可
例如
time tar --use-compress-program=pigz -xvpf   MYD-LR3568-Distribution-H4.1-V1.0.0.tar.gz飞快

3.压缩资料
使用命令为
time tar --use-compress-program=pigz -cvpf youfile.tar.gz yourfile/其中 yourfile.tar.gz 为你要压缩的文件
yourfile/为你要解压到的目录
4.pigz相关资料
pigz首页: https://zlib.net/pigz/
pigz指令手册:https://zlib.net/pigz/pigz.pdf
pigz Github地址:https://github.com/madler/pigz
5.指令手册
因为pigz指令手册是英文的,用AI翻译成中文了
pigz, unpigz - 压缩或解压缩文件
概要
plaintext
pigz [ −cdfhikKlLmMnNqrRtz0..9,11 ][-b blocksize ][-p threads ][-S suffix ][name ... ]
unpigz [ −cfhikKlLmMnNqrRtz ][-b blocksize ][-p threads ][-S suffix ][name ... ]
描述
Pigz 使用多线程来利用多个处理器和核心进行压缩。输入被分割成 128 KB 的块,每个块并行压缩。每个块的单独校验值也并行计算。压缩后的数据按顺序写入输出,并且会根据各个单独的校验值计算一个组合校验值。
生成的压缩数据格式可以是 gzip、zlib 或单条目 zip 格式,使用的是 deflate 压缩方法。压缩过程会产生部分原始 deflate 流,这些流由一个单独的写入线程连接起来,并加上适当的头部和尾部,尾部包含组合校验值。
每个部分原始 deflate 流以一个空的存储块(使用 zlib 的 Z_SYNC_FLUSH 选项)结束,以便在字节边界处结束该部分比特流。这使得部分流可以简单地作为字节序列连接起来。这会为每个输入块的输出增加非常小的 4 到 5 字节开销。
默认的输入块大小是 128K,但可以使用 -b 选项更改。默认情况下,压缩线程的数量设置为在线处理器的数量,可以使用 -p 选项更改。指定 -p 1 则完全不使用线程。
输入块虽然是独立压缩的,但会加载前一个块的最后 32K 作为预设字典,以保持单线程 deflate 压缩的有效性。可以使用 -i 或 --independent 选项关闭此功能,这样块就可以独立解压缩,以便进行部分错误恢复或随机访问。这还会插入一个额外的空块来标记独立块,每个块前面会有九字节序列(十六进制):00 00 FF FF 00 00 00 FF FF。
解压缩无法并行化,至少在没有为此专门准备的 deflate 流的情况下是这样。因此,pigz 使用一个线程(主线程)进行解压缩,但会创建另外三个线程用于读取、写入和校验计算,在某些情况下可以加快解压缩速度。可以通过指定一个进程(-dp 1 或 -tp 1)来关闭并行解压缩。
命令行上的所有选项都会在处理任何文件名之前进行处理。如果命令行上没有提供文件名,或者如果文件名指定为 -(但不是在 -- 之后),则从标准输入读取输入。如果设置了 GZIP 或 PIGZ 环境变量,则在处理任何命令行选项之前,会从它们的值中获取选项,先从 GZIP 中获取,然后从 PIGZ 中获取。
可以使用 pigz -d 或 unpigz 将压缩文件恢复到原始格式。
选项
- -#- --fast- --best
 使用指定的数字- #调节压缩速度,其中- -1或- --fast表示最快的压缩方法(压缩率较低),- -9或- --best表示最慢的压缩方法(压缩率最高)。- -0表示不进行压缩。- -11使用 Jyrki Alakuijala 的 zopfli 算法,能在严重牺牲执行时间的情况下提高几个百分点的压缩率。默认值是- -6。
- -A- --alias xxx
 对于从标准输入读取的数据,使用- xxx作为任何- --zip条目的名称(默认名称是- -)。
- -b- --blocksize mmm
 将压缩块大小设置为- mmmK(默认 128 KiB)。
- -c- --stdout- --to-stdout
 将所有处理后的输出写入标准输出(不会删除原始文件)。
- -C- --comment ccc
 在 gzip 头部或 zip 中央文件头部包含提供的注释。
- -d- --decompress- --uncompress
 对压缩的输入进行解压缩。
- -f- --force
 强制覆盖文件、压缩- .gz文件、处理链接并输出到终端。
- -h- --help
 显示帮助信息并退出。
- -H- --huffman
 使用仅哈夫曼编码策略进行压缩。
- -i- --independent
 为了便于损坏恢复,独立压缩各个块。
- -k- --keep
 处理后不删除原始文件。
- -K- --zip
 压缩为 PKWare zip(- .zip)单条目格式。
- -l- --list
 列出压缩输入的内容。
- -L- --license
 显示 pigz 的许可证信息并退出。
- -m- --no-time
 不存储或恢复修改时间。- -Nm会存储或恢复文件名,但不存储或恢复修改时间。请注意,选项的顺序很重要。
- -M- --time
 存储或恢复修改时间。- -nM会存储或恢复修改时间,但不存储或恢复文件名。请注意,选项的顺序很重要。修改时间仅为常规文件存储,不为管道存储。
- -n- --no-name
 不存储或恢复文件名或修改时间。这是解压缩时的默认设置。如果文件名未从头部恢复,则去除后缀后的压缩文件名即为解压缩后的文件名。如果修改时间未从头部恢复,则使用压缩文件的修改时间(而不是当前时间)。
- -N- --name
 存储或恢复文件名和修改时间。这是压缩时的默认设置。
- -p- --processes n
 最多允许- n个进程(默认是在线处理器的数量)。
- -q- --quiet- --silent
 不打印任何消息,即使发生错误也不打印。
- -r- --recursive
 处理所有子目录的内容。
- -R- --rsyncable
 为- rsync确定输入块的位置。
- -S- --suffix .sss
 压缩时使用- .sss作为后缀,而不是- .gz。
- -t- --test
 测试压缩输入的完整性。
- -U- --rle
 使用游程编码策略进行压缩。
- -v- --verbose
 提供更详细的输出。
- -V- --version
 显示 pigz 的版本。- -vV还会显示 zlib 的版本。
- -z- --zlib
 压缩为 zlib(- .zz)格式,而不是 gzip 格式。
-- 之后的所有参数都被视为文件名(适用于以 - 开头的文件名)。
这些选项是 -11 压缩级别独有的:
- -F- --first
 在分块之前先进行迭代(默认是最后进行迭代)。
- -I- --iterations n
 优化的迭代次数(默认 15 次)。
- -J- --maxsplits n
 最大分块数量(默认 15 个)。
- -O- --oneblock
 不分割成更小的块(默认是分块)。
