Ubuntu 22.04使用pigz多线程快速解压/压缩文件

最近搞项目,资料太大,解压时间太久,于是想办法解决。

开贴记录。

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
    不分割成更小的块(默认是分块)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Amazon Quantum Ledger Database (QLDB):革新数据可信记录的终极解决方案

在数字化浪潮中,企业数据的安全性与可信性成为核心挑战。无论是金融交易的透明审计、供应链的全程追踪,还是医疗记录的真实性验证,如何确保数据不可篡改且可追溯,已成为企业亟待解决的难题。Amazon Quantum Ledger Database (QLDB…

日本IT|AWS工作内容及未来性、以及转职的所需资质和技能

AWSとは AWSはAmazon Web Services(アマゾンウェブサービス)の略称です。 名称から分かるとおり、ネットを通じた通販などを事業として行っているAmazon.com社がクラウドサービスとして運営しています。 本来であれば自分たちでインフラ環境を構築する…

Conda+jupyterlab

文章目录 1、Conda1.1、基本介绍1.2、conda安装1.3、conda常用命令1.3.1、基本命令1.3.2、环境管理 2、Jupyterlab2.1、基本介绍2.2、安装使用 3、pycharm中使用conda 1、Conda 1.1、基本介绍 Conda 是一个开源的包管理和环境管理工具,适用于 Python 及其他编程语…

Vue 项目中 CDN 引入的利弊及解决方案

在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏的体验。通过调试发送时间主要消耗…

拥有一台云服务器能做什么呢?

拥有一台云服务器就像拥有了一台24小时在线的远程电脑,你可以通过互联网随时随地管理它。它的用途非常广泛,无论是个人学习、开发测试,还是企业级应用部署,都能发挥重要作用。以下是常见的应用场景,按需求分类整理&…

PHP 在 if 判断时由于运算符优先级导致 false 的问题

首先来看一段代码&#xff1a; $price 187.50;if (!is_numeric($price) || $price < 0 || ($price * 100 > 1000000)) {echo "价格错误&#xff1a;$price\n"; } else {echo "价格正确&#xff1a;$price\n"; }乍一看是不是认为并没有什么问题&…

从零基础到能独立设计单片机产品,一般需要经历哪些学习阶段?

相信很多人&#xff0c;内心都有“钢铁侠”的幻想&#xff0c;成为能写程序&#xff0c;能设计硬件&#xff0c;能设计结构&#xff0c;能焊接的全能型人才。 上次徐工问我&#xff0c;如果你财富自由了&#xff0c;想去做啥&#xff1f; 我说出来&#xff0c;可能大家都不信&a…

Liunx启动kafka并解决kafka时不时挂掉的问题

kafka启动步骤 先启动zookeeper&#xff0c;启动命令如下 nohup ./zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties > /home/kafka/kafka/zookeeper.log 2>&1 &再启动kafka&#xff0c;启动命令如下 nohup ./kafka-server-start.sh…

使用STM32CubeMX配置定时器中断实现LED每秒闪烁一次(STM32G070CBT6)

说明&#xff1a; 本案例采用的定时器3&#xff08;TIM3&#xff09;实现&#xff0c;使用其他定时器是一样配置。 如何新建一个工程以及如何配置LED的端口&#xff0c;请查看前面文章&#xff1a;使用STM32CubeMX实现LED灯每秒闪烁一次&#xff08;STM32G070CBT6单片机&…

暴力破解Excel受保护的单元格密码

暴力破解Excel受保护的单元格密码 分享一个暴力破解Excel受保护的单元格密码的方法 第一步 在Excel中按下Alt F11&#xff0c;打开Visual Basic for Applications&#xff08;VBA&#xff09;编辑器。 第二步 在VBA编辑器中&#xff0c;点击插入菜单&#xff0c;选择模块…

Git常用操作之GitLab

Git常用操作之GitLab 小薛博客官网&#xff1a;小薛博客Git常用操作之GitLab官方地址 1、GitLab安装 https://gitlab.cn/install/ 1、Docker安装GitLab https://docs.gitlab.cn/jh/install/docker.html 1、设置卷位置 在设置其他所有内容之前&#xff0c;请配置一个新的…

pgsql创建新用户并赋只读权限

在 PostgreSQL 中&#xff0c;为新用户赋予只读权限的步骤如下&#xff1a; —### 1. 创建新用户首先&#xff0c;创建一个新用户&#xff08;角色&#xff09;&#xff0c;并设置密码&#xff1a;sqlCREATE ROLE 用户名 WITH LOGIN PASSWORD 密码;例如&#xff1a;sqlCREATE R…

数据结构与算法——算法3 面试常用排序算法

首先了解排序算法性能和优缺点 然后了解快排 和堆排序的方法。 可以参考如下的博客 八大排序(超详解附动图源码)

linux root丢失修改密

在RHEL7下重置密码 第一种方式&#xff1a;光驱进入急救模式 //做之前最好 selinuxdisabled Conntinue 然后chroot /mnt/sysimag 然后编辑/etc/shadow文件 第二种方式&#xff1a; 1&#xff1a;编辑启动菜单按e,找到linux16行&#xff0c;在行尾加入 init/bin/sh,同时在…

数据类设计_图片类设计之3_半规则图类设计(前端架构基础)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇讨论半规则图类型的设计 半规则图的定义 什么是半规则图?笔者看见了一些似乎规则又不是太规则的图形,例如带圆角的矩阵,在页面上找一个圆角框 为了…

Qt 信号与槽机制

1. 信号 和 槽 Qt 信号与槽机制 是一种用于对象间通信的低耦合设计模式&#xff0c;核心思想是&#xff1a;当某个信号触发&#xff0c;自动调用预先关联的处理函数&#xff08;槽函数&#xff09;。 在 Qt 中&#xff0c;如果一个类需要使用信号与槽机制&#xff0c;则该类必…

实验8 搜索技术

实验8 搜索技术 一、实验目的 &#xff08;1&#xff09;掌握搜索技术的相关理论&#xff0c;能根据实际情况选取合适的搜索方法&#xff1b; &#xff08;2&#xff09;进一步熟悉盲目搜索技术&#xff0c;掌握其在搜索过程中的优缺点&#xff1b; &#xff08;3&#xff09;…

区块链知识点2

1.用非对称加密方式传输对称加密的密钥 2.数字签名&#xff1a;私钥加密&#xff0c;公钥解密 3.RSA由于计算较大&#xff0c;通常用于数字签名和密钥交换&#xff0c;而非直接的数据加密。 4.签名过程 发送方A将消息用Hash算法产生一个消息摘要(Message Digest) 发…

消费级显卡上ollama部署QwQ32B

ollama部署QwQ32B QwQ32B硬件要求 魔改2080ti 的 22G 显存差不多够用 ollama中的是Q4_K_M量化模型 硬件配置模型推理模型高效微调模型全量微调显存占用最低配置显存占用最低配置显存占用最低配置FP_1664GRTX3090&#xff0a;4&#xff08;94G&#xff09;92GRTX3090&#xff0a…

万字长文详解嵌入式电机软件开发

目录 第一章:嵌入式电机概述 1.1 电机类型:选对 “主角” 有多重要? 1.2 嵌入式系统特点:硬件的 “灵魂” 靠什么支撑? 第二章:开发环境搭建 2.1 硬件平台选择:给 “大脑” 找个好载体 2.1.1 ARM Cortex 系列:全能选手 2.1.2 AVR 微控制器:简约而不简单 2.1.3 …