当前位置: 首页 > news >正文

Linux——服务器多线程压缩工具介绍

并行压缩指定文件夹

压缩指定文件夹时,通过 pigz-p 参数指定线程数实现并行加速,命令如下:

tar -cf - 目标文件夹 | pigz -p 线程数 > 压缩包名称.tar.gz

关键说明

-p 线程数:强制启用多线程并行压缩,建议设置为 CPU 核心数(可用 nproc 命令查看,如 8 核则设为 -p 8)。
仅需替换两个参数目标文件夹(要压缩的文件夹名)和 线程数

压缩并显示进度

tar -cf - 目标文件夹 | pv | pigz -p 线程数 > 压缩包.tar.gz

示例:

用 12 线程压缩 documents 文件夹:
用 8 线程压缩 photos 文件夹,同时显示进度:

tar -cf - documents | pigz -p 12 > documents.tar.gztar -cf - photos | pv | pigz -p 8 > photos.tar.gz

效果:

利用多核并行加速,压缩速度比单线程提升数倍(核心数越多效果越明显)。

压缩包内保留原文件夹的完整目录结构,原文件夹不会被删除。

============================================================================

============================================================================

多线程压缩单个文件、单个目录(一个目录下含有多个文件夹)

在 Linux 中,传统的压缩工具(如 gzipbzip2)默认是单线程的,压缩大文件或目录时效率较低。而 多线程压缩工具 可以利用多核 CPU 提升速度,以下是常用的高效多线程压缩工具及用法:

一、核心多线程压缩工具

1. pigz(并行版 gzip,推荐)

pigzgzip 的多线程替代工具,兼容 gzip 格式(生成的 .gz 文件可被 gzip 解压),压缩 / 解压速度大幅提升。

安装(部分系统默认不预装):

# Ubuntu/Debiansudo apt install pigz# CentOS/RHELsudo yum install pigz# 源码安装(最新版本)wget https://zlib.net/pigz/pigz-2.8.tar.gztar -zxf pigz-2.8.tar.gz && cd pigz-2.8 && make && sudo make install

常用命令

压缩单个文件

pigz -p 8 -k -6 file.txt  # -p 8:使用8线程;-k:保留原文件;-6:压缩级别(1最快,9最高,默认6)# 生成 file.txt.gz

压缩目录(结合 tar 打包)

tar -cf - dir/ | pigz -p 8 -6 > dir.tar.gz  # 先打包目录,再用pigz多线程压缩

解压

pigz -d -p 8 file.txt.gz  # -d:解压;等价于 unpigz -p 8 file.txt.gz# 解压tar.gz包:tar -xf dir.tar.gz (直接用tar即可,自动调用gzip/pigz)
2. pbzip2(并行版 bzip2

pbzip2bzip2 的多线程版本,压缩率略高于 gzip,但速度稍慢于 pigz,适合对压缩率有一定要求的场景。

安装

sudo apt install pbzip2  # Ubuntu/Debian
sudo yum install pbzip2  # CentOS/RHEL

常用命令

压缩单个文件

pbzip2 -p 8 -k -6 file.txt  # -p 8:8线程;-k:保留原文件;-6:压缩级别(1-9)# 生成 file.txt.bz2

压缩目录(结合 tar

tar -cf - dir/ | pbzip2 -p 8 -6 > dir.tar.bz2

解压

pbzip2 -d -p 8 file.txt.bz2  # -d:解压# 解压tar.bz2包:tar -xf dir.tar.bz2
3. pxz(并行版 xz

pxzxz 的多线程版本,压缩率极高(高于 gzip/bzip2),但速度较慢,适合对压缩率要求高、不急于完成的场景。

安装

sudo apt install pxz  # Ubuntu/Debiansudo yum install pxz  # CentOS/RHEL(可能需要EPEL源)

常用命令
压缩单个文件

pxz -T 8 -k -6 file.txt  # -T 8:8线程;-k:保留原文件;-6:压缩级别(1-9)# 生成 file.txt.xz

压缩目录(结合 tar

tar -cf - dir/ | pxz -T 8 -6 > dir.tar.xz

解压

pxz -d -T 8 file.txt.xz  # -d:解压# 解压tar.xz包:tar -xf dir.tar.xz
4. zstd(Zstandard,推荐,速度与压缩率平衡)

zstd 是 Facebook 开发的新一代压缩算法,原生支持多线程,压缩速度极快(远超 gzip),压缩率接近 xz,是目前综合性能最优的工具之一。
安装

sudo apt install zstd  # Ubuntu/Debian(18.04+)sudo yum install zstd  # CentOS/RHEL(8+)

常用命令

压缩单个文件

zstd -T8 -k -6 file.txt  # -T8:8线程;-k:保留原文件;-6:压缩级别(1-19,默认3)# 生成 file.txt.zst

压缩目录(结合 tar

tar -cf - dir/ | zstd -T8 -6 > dir.tar.zst

解压

zstd -d -T8 file.txt.zst  # -d:解压;等价于 unzstd -T8 file.txt.zst# 解压tar.zst包:tar -I zstd -xf dir.tar.zst (或直接 tar -xf,部分系统需指定 -I zstd)

二、关键参数说明

线程数(-p /-T):通常设置为 CPU 核心数(如 nproc 命令可查看核心数),避免超过物理核心导致调度开销。

压缩级别(-1 到 -9 或 -19)

低级别(-1/-3):速度快,压缩率低,适合临时备份、快速传输。高级别(-9/-19):压缩率高,速度慢,适合长期存储。

保留原文件(-k):默认压缩后会删除原文件,加 -k 可保留。

三、选择建议

追求最快速度zstd -T 核心数 -1pigz -p 核心数 -1

平衡速度与压缩率zstd -T 核心数 -6(首选)或 pigz -p 核心数 -6

最高压缩率pxz -T 核心数 -9(但速度较慢)。

这些工具均支持管道(|)与 tar 结合,轻松处理目录打包 + 压缩,是服务器端大文件处理的高效选择。


文章转载自:

http://ps7z7nFO.LcpLz.cn
http://WieimPmN.LcpLz.cn
http://MYSmDBAh.LcpLz.cn
http://aE3FfpCa.LcpLz.cn
http://12uXOkoV.LcpLz.cn
http://ajU4yKth.LcpLz.cn
http://7r1Shnuz.LcpLz.cn
http://rVGfBVqq.LcpLz.cn
http://dHaTDuix.LcpLz.cn
http://dUmOY7gm.LcpLz.cn
http://xeE2MEI6.LcpLz.cn
http://qR2urgog.LcpLz.cn
http://tZdHGofY.LcpLz.cn
http://GInUfBXQ.LcpLz.cn
http://IQxb762B.LcpLz.cn
http://Cswdlz5s.LcpLz.cn
http://W46AMUnJ.LcpLz.cn
http://TpWCd06S.LcpLz.cn
http://0opJnNZr.LcpLz.cn
http://9BOsukbf.LcpLz.cn
http://83LxpCnF.LcpLz.cn
http://zsvmG54P.LcpLz.cn
http://HSAXscA6.LcpLz.cn
http://mOQMG2zC.LcpLz.cn
http://3ttU7nsX.LcpLz.cn
http://QMWTCjHO.LcpLz.cn
http://leL31iC8.LcpLz.cn
http://TAPoQN5T.LcpLz.cn
http://tcV8osts.LcpLz.cn
http://YQd0OaeY.LcpLz.cn
http://www.dtcms.com/a/366133.html

相关文章:

  • 深入探讨AI三大领域的核心技术、实践方法以及未来发展趋势,结合具体代码示例、流程图和Prompt工程实践,全面展示AI编程的强大能力。
  • Makefile学习笔记 (1)
  • Horse3D游戏引擎研发笔记(九):使用现代图形引擎的元数据管理纹理创建过程(类Unity、Unreal Engine与Godot)
  • vue2 打包生成的js文件过大优化
  • 【iOS】对象复制与属性关键字
  • Linux编程——网络编程(UDP)
  • 当液态玻璃计划遭遇反叛者:一场 iOS 26 界面的暗战
  • 大语言模型推理的幕后英雄:深入解析Prompt Processing工作机制
  • 计算机大数据毕业设计推荐:基于Spark的新能源汽车保有量可视化分析系统
  • 如何轻松地将联系人从 Mac 同步到 iPhone
  • 如何本地编译servicecomb-java-chassis
  • 系统越拆越乱?你可能误解了微服务的本质!
  • 商城源码后端性能优化:JVM 参数调优与内存泄漏排查实战
  • SVN和Git两种版本管理系统对比
  • Clang 编译器:下载安装指南与实用快捷键全解析
  • Java全栈开发面试实录:从基础到微服务的深度探索
  • CentOS系统如何查看当前内存容量
  • SuperSocket 动态协议服务端开发全解析
  • RTSP 协议认证机制详解:Basic 与 Digest 的原理与应用
  • 小迪安全v2023学习笔记(七十七讲)—— 业务设计篇隐私合规检测重定向漏洞资源拒绝服务
  • 【RNN-LSTM-GRU】第四篇 GRU门控循环单元:LSTM的高效替代者与实战指南
  • 为何三折叠手机只有华为可以?看华为Mate XTs非凡大师就知道
  • 2025年09月03日最热门的开源项目(Github)
  • Redis底层实现原理之五大基础结构
  • 云手机与网络游戏相结合的优势?
  • Docker学习笔记(二):镜像与容器管理
  • 20. 云计算-华为云-云服务
  • 域名注册后,为什么还需要域名解析?
  • 嵌入式硬件 - 51单片机3
  • 操作系统(二) :进程与线程