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.rhkb.cn/news/32253.html

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

相关文章

版本控制器Git(3)

文章目录 前言一、分支管理策略二、Bug分支管理遇到Bug时的处理方法使用 git stash 暂存工作区内容创建并切换到Bug修复分支恢复之前的工作 三、临时分支的删除总结 前言 我们在上篇讲到了分支,现在我们就着这个继续来讲解! 一、分支管理策略 master分支…

pytest+allure+jenkins

本地运行参考:pytestallure 入门-CSDN博客 jenkins运行如下: 安装插件:allure 配置allure安装目录 配置pytest、allure 环境变量 配置流水线 进行build,结果如下 ,点击allure report 查看结果

AI术语整理(持续更新)

在AI相关的学习和使用中,经常会被各种术语混淆,搞清楚术语本来的含义是关键,本文收集整理了部分AI相关术语,会持续更新。 基础概念 人工智能(Artificial Intelligence,AI):一种模…

【蓝桥杯单片机】第十一届省赛

一、真题 二、创建工程 1.在C盘以外的盘新建文件夹,并在文件夹里面创建两个文件夹Driver 和Project 2.打开keil软件,在新建工程并选择刚刚建好的project文件夹,以准考证号命名 3.选择对应的芯片型号 4.选择否,即不创建启动文件 …

GMT绘图笔记:用深度作为表面高度(Z 值),用其他物理量(泊松比)给表面着色

之前用GMT绘制莫霍面的三维示意图是用的莫霍面的深度作为表面着色。 GMT绘图笔记:绘制堆叠三维图_gmt画图-CSDN博客 如果要换成其他的物理场,比如泊松比,则需要使用以下的代码 gmt begin BS_figures2 png,pdf E600 # 绘制底图 # Chistrong…

docker搭建elk

文章目录 1.拉取镜像2.ES配置3.logstash配置4.kibana配置5.创建自定义网络6.docker-compose.yml文件7.springboot对接Logstash1.创建一个springboot项目引入主要依赖2.application.yml配置3.resources目录中新增logback-spring.xml4.启动项目,搞点日志5.进入kibana控…

golang算法快慢指针

876. 链表的中间结点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结…

瑞云渲染专访奥斯卡提名制片人兼女性动画人协会副主席Jinko Gotoh!

都说CG行业男多女少,女同胞都是珍稀资源,但艺术领域怎么可以没有女性视角呢?本期推文我们邀请到了动画行业资深大佬后藤纯子Jinko Gotoh,作为奥斯卡提名制片人兼女性动画人协会副主席,后藤纯子始终以多元文化倡导者与创…

道路运输安全员考试:备考中的心理调适与策略

备考道路运输安全员考试,心理调适同样重要。考试压力往往会影响考生的学习效率和考试发挥。​ 首先,要正确认识考试压力。适度的压力可以激发学习动力,但过度的压力则会适得其反。当感到压力过大时,要学会自我调节。可以通过运动…

卡尔曼滤波算法从理论到实践:在STM32中的嵌入式实现

摘要:卡尔曼滤波(Kalman Filter)是传感器数据融合领域的经典算法,在姿态解算、导航定位等嵌入式场景中广泛应用。本文将从公式推导、代码实现、参数调试三个维度深入解析卡尔曼滤波,并给出基于STM32硬件的完整工程案例…

【Linux】:线程池

朋友们、伙计们,我们又见面了,本期来给大家带来线程池相关的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数据结构…

SpringMVC (一)基础

目录 SpringMVC 一 简单使用 1 新建模块选择指定参数 2 创建实现类 3 将项目启动 4 运行结果:在浏览器当中响应执行 二 RequestMapping 三 请求限定 SpringMVC SpringMVC是Spring的web模块,用来开发Web应用,SpringMVC应用最终作为B/…

tomcat应用的作用以及安装,以及tomcat软件的开机自启动。

一.tomcat介绍 1.作用 tomcat是一款用来部署网站服务器的一款软件。 动态网站主流语言: PHP, lamp/lnmp平台 Java语言,运行在tomcat平台。【只要这个网站或者软件是Java语言写的,我们都可以在tomcat平台上去运行这个java程序。】 网站是…

CSDN博客:Markdown编辑语法教程总结教程(下)

❤个人主页:折枝寄北的博客 Markdown编辑语法教程总结 前言1. LaTex数学公式2. 插入不同类别的图2.1 插入甘特图2.2 插入UML图2.3 插入Mermaid流程图2.4 插入Flowchart流程图2.5 插入classDiagram类图 3. CSDN快捷键4. 字体相关设置4.1 字体样式改变4.2 字体大小改变…

AI模型的构建过程是怎样的(下)

你好,我是舒旻。 上节课,我们讲了一个模型构建的前 2 个环节,模型设计和特征工程。今天,我们继续来讲模型构建的其他 3 个环节,说说模型训练、模型验证和模型融合中,算法工程师的具体工作内容,以及 AI 产品经理需要掌握的重点。 模型训练 模型训练是通过不断训练、验证…

K邻近算法

K邻近算法 1 算法介绍 1.1 什么是K-NN K-NN(K Near Neighbor):k个最近的邻居,即每个样本都可以用它最接近的k个邻居来代表。K-NN算法属于监督学习方式的分类算法,即计算某给点到每个点的距离作为相似度的反馈。简单…

晋升系列4:学习方法

每一个成功的人,都是从底层开始打怪,不断的总结经验,一步一步打上来的。在这个过程中需要坚持、总结方法论。 对一件事情长久坚持的人其实比较少,在坚持的人中,不断的总结优化的更少,所以最终达到高级别的…

LoRA,DoRA,RSLoRA,LoRA+ 是什么

LoRA,DoRA,RSLoRA,LoRA+ 是什么 一、LoRA(Low-Rank Adaptation,低秩适应) 核心原理:冻结预训练模型参数,仅在每层插入两个低秩矩阵(A∈R^{rd}, B∈R^{dr}),通过分解权重增量ΔW=BA近似全秩更新,参数量仅为全量微调的0.01%-1%。 举例:在GPT-2(774M参数)的注意力…

HTTP发送POST请求的两种方式

1、json String json HttpRequest.post(getUrl(method, "v1", url, userId, appKey)).header("Content-type", "application/json") // 设置请求头为 JSON 格式.body(JSONUtil.toJsonStr(params)) // 请求体为 JSON 字符串.execute().body(); …

TCP并发服务器

单循环服务器&#xff1a;服务器在同一时刻只能响应一个客户端的需求。 并发服务器&#xff1a;服务器在同一时刻可以响应多个客户端的需求。 构建TCP服务器的方法&#xff1a; IO多路复用的函数接口[select() poll() epoll()] 1.多进程实现TCP并发服务器 #include <s…