Debian/Ubuntu 、Fedora 、Arch Linux, 在Linux上,对文本文件进行多线程压缩 xz、pxz、zstd、7z、lrzip

Debian/Ubuntu 、Fedora 、Arch Linux, 在Linux上,对文本文件进行多线程压缩 xz、pxz、zstd、7z、lrzip

  • 前言对比
  • 多线程压缩
  • 1. 使用 `pxz`
    • 安装 `pxz`
    • 使用 `pxz`
  • 2. 使用 `xz` 的 `-T` 选项
    • 使用 `xz -T`
  • 3. 其他压缩命令
    • 1. 使用 `gzip`
    • 2. 使用 `bzip2`
    • 3. 使用 `xz`
    • 4. 使用 `7z`
    • 5. 使用 `zstd`
    • 6. 使用 `tar` 和压缩工具结合
  • 4. 解压缩
  • 总结

前言对比

xz 通常提供非常高的压缩比,特别适合文本文件。它使用 LZMA2 算法,压缩效果优于 gzip 和 bzip2。
zstd 是一种现代的压缩算法,提供了很好的压缩比和速度。虽然在某些情况下它的压缩比可能不如 xz,但它在速度上表现优异。
bzip2 也可以提供良好的压缩比,尤其在处理文本文件时。
7z(p7zip)能够提供极高的压缩比,尤其适合文本和混合类型文件。
lrzip 是一种专门设计用于大文件的压缩工具,能够提供非常高的压缩比,尤其在处理重复数据时。


xz 本身并不支持多线程压缩,但可以使用 pxzxz -T 选项来实现多线程压缩。
以下是如何使用这两种方法的说明:

多线程压缩

1. 使用 pxz

pxzxz 的一个并行版本,能够利用多个 CPU 核心进行压缩。

安装 pxz

在大多数 Linux 发行版中,你可以通过包管理器安装 pxz

# 对于 Debian/Ubuntu
sudo apt-get install pxz# 对于 Fedora
sudo dnf install pxz# 对于 Arch Linux
sudo pacman -S pxz

使用 pxz

使用 pxz 压缩文件的基本命令如下:

pxz -9 filename.txt

这里的 -9 表示使用最高压缩级别。

2. 使用 xz-T 选项

在较新的版本的 xz 中,可以使用 -T 选项指定使用的线程数。

使用 xz -T

例如,要使用 4 个线程进行压缩,可以这样做:

xz -T4 -9 filename.txt

这里的 -T4 表示使用 4 个线程,-9 表示使用最高压缩级别。

3. 其他压缩命令

在Linux中,可以使用多种工具对文本文件进行超高压缩。以下是一些常用的方法和工具:

1. 使用 gzip

gzip 是一种常见的压缩工具,适合压缩文本文件。

gzip filename.txt

这将生成一个名为 filename.txt.gz 的压缩文件。

2. 使用 bzip2

bzip2 通常比 gzip 提供更好的压缩率,但速度较慢。

bzip2 filename.txt

这将生成一个名为 filename.txt.bz2 的压缩文件。

3. 使用 xz

xz 可以提供更高的压缩比,尤其适合文本文件。

xz filename.txt

这将生成一个名为 filename.txt.xz 的压缩文件。

4. 使用 7z

7zp7zip 包的一部分,能够提供非常高的压缩比。

7z a filename.7z filename.txt

5. 使用 zstd

zstd 是一种快速且高效的压缩算法,适合对大文件进行压缩。

zstd filename.txt

这将生成一个名为 filename.txt.zst 的压缩文件。

6. 使用 tar 和压缩工具结合

如果你想同时压缩多个文件,可以使用 tar 来打包文件,然后再进行压缩。例如,使用 gzip

tar -czf archive.tar.gz file1.txt file2.txt

4. 解压缩

对于上述所有工具,你可以使用相应的解压命令:

gzip: gunzip filename.txt.gz
bzip2: bunzip2 filename.txt.bz2
xz: unxz filename.txt.xz
7z: 7z x filename.7z
zstd: unzstd filename.txt.zst
tar: tar -xzf archive.tar.gz

选择合适的工具取决于你的需求,如压缩比、速度以及是否需要处理多个文件等。

总结

  • 如果你需要一个简单的多线程解决方案,可以使用 pxz
  • 如果你的 xz 版本支持 -T 选项,也可以直接使用 xz 来进行多线程压缩。

根据你的需求选择合适的工具,通常 pxz 在多线程压缩方面的性能表现会更好。

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

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

相关文章

『 Linux 』网络层 - IP协议 (二)

文章目录 路由NAT技术分片与组装分片的组装IP协议分片的短板 路由 通常情况路由器具备了一个非常重要的功能,即构建子网; 同时路由器需要实现跨网络通信,说明路由器必须存在两个或以上的IP地址,通常在路由器中可以看到几个接口,分别是一个WAN口和几个LAN口; WAN口IP被称为公网I…

使用 OpenCV 进行视频中的行人检测

在计算机视觉领域,行人检测是一个重要的研究方向,它在视频监控、自动驾驶、人机交互等领域都有着广泛的应用。本文将介绍如何使用 OpenCV 库来实现视频中的行人检测。 环境准备 首先,我们需要安装 OpenCV 库。可以通过以下命令来安装&#…

javaEE初阶——多线程(1)

文章目录 一些背景知识操作系统(OS)(计算机的大管家)操作系统的基本概念:市面上常见的操作操作系统: 关于前端与后端的介绍:(针对服务的体系架构)计算机是如何工作的&…

Apple Vision Pro开发003-PolySpatial2.0新建项目

unity6.0下载链接:Unity 实时开发平台 | 3D、2D、VR 和 AR 引擎 一、新建项目 二、导入开发包 com.unity.polyspatial.visionos 输入版本号 2.0.4 com.unity.polyspatial(单独导入),或者直接安装 三、对应设置 其他的操作与之前的版本相同…

学习threejs,使用设置normalMap法向量贴图创建更加细致的凹凸和褶皱

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…

Python办公自动化案例:将演示文稿批量导出为图片和PDF文件

案例:将演示文稿批量导出为图片和PDF文件 准备资料:准备好PPT,并起好名称,放在同一目录下。 批量的将ppt,pptx转换为pdf和图片,代码如下: import comtypes.client import osdef init_powerpoint():powerp

数据结构 ——— 直接选择排序算法的实现

目录 直接选择排序算法的思想 优化直接选择排序算法的思想 代码实现(默认升序) 直接选择排序算法的思想 直接选择排序算法的思想类似与直接插入排序 区别在于从大到小选择最小的元素或者最大的元素直接放在元素应该停留的位置每次从待排序的元素中选…

linux从0到1——shell编程9

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

selinux及防火墙

selinux说明 SELinux 是 Security-Enhanced Linux 的缩写,意思是安全强化的 linux 。 SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用。 httpd进程标签(/usr/share/nginx/html &#…

前端:JavaScript (学习笔记)【2】

目录 一,数组的使用 1,数组的创建 [ ] 2,数组的元素和长度 3,数组的遍历方式 4,数组的常用方法 二,JavaScript中的对象 1,常用对象 (1)String和java中的Stri…

QML学习 —— 28、3种等待指示控件(附源码)

效果如下 说明 BusyIndicator应用于指示在加载内容或UI被阻止等待资源可用时的活动。BusyIndicator类似于一个不确定的ProgressBar。两者都可以用来指示背景活动。主要区别在于视觉效果,ProgressBar还可以显示具体的进度(当可以确定时)。由于视觉差异,繁忙指示器和不确定的…

Java 基于SpringBoot+Vue的家政服务管理平台

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

DataGear 5.2.0 发布,数据可视化分析平台

DataGear 企业版 1.3.0 已发布,欢迎体验! http://datagear.tech/pro/ DataGear 5.2.0 发布,图表插件支持定义依赖库、严重 BUG 修复、功能改进、安全增强,具体更新内容如下: 重构:各模块管理功能访问路径…

nature communications论文 解读

题目《Transfer learning with graph neural networks for improved molecular property prediction in the multi-fidelity setting》 这篇文章主要讨论了如何在多保真数据环境(multi-fidelity setting)下,利用图神经网络(GNNs&…

Flutter:SlideTransition位移动画,Interval动画延迟

配置vsync&#xff0c;需要实现一下with SingleTickerProviderStateMixinclass _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{// 定义 AnimationControllerlate AnimationController _controller;overridevoid initState() {super.…

svn 崩溃、 cleanup失败 怎么办

在使用svn的过程中&#xff0c;可能出现整个svn崩溃&#xff0c; 例如cleanup 失败的情况&#xff0c;类似于 这时可以下载本贴资源文件并解压。 或者直接访问网站 SQLite Download Page 进行下载 解压后得到 sqlite3.exe 放到发生问题的svn根目录的.svn路径下 右键呼出pow…

GPT系列文章

GPT系列文章 GPT1 GPT1是由OpenAI公司发表在2018年要早于我们之前介绍的所熟知的BERT系列文章。总结&#xff1a;GPT 是一种半监督学习&#xff0c;采用两阶段任务模型&#xff0c;通过使用无监督的 Pre-training 和有监督的 Fine-tuning 来实现强大的自然语言理解。在 Pre-t…

Linux线程(Linux和Windows的线程区别、Linux的线程函数、互斥、同步)

Linux线程&#xff08;Linux和Windows的线程区别、Linux的线程函数、互斥、同步&#xff09; 1. 线程介绍 线程的概念&#xff1a; 线程是 CPU 调度的基本单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流&#xff0…

Large Spatial Model:End-to-end Unposed Images to Semantic 3D 论文解读

目录 一、概述 二、相关工作 1、SfM和可微神经表示 2、端到端的Image-to-3D 三、LSM 1、密集几何预测 2、2D信息特征提取 3、点特征融合 4、可微渲染 5、损失函数 四、实验 一、概述 该论文提出一种大型空间模型&#xff08;Larget Spatial Model,LSM&#xff09;…

Leetcode207. 课程表(HOT100)

链接 题解&#xff1a;先统计入度为0的点&#xff0c;如果一个节点入度为0&#xff0c;说明没有课程指向它&#xff0c;那么你就可以学习它了。反之说明还有先修课。 注意&#xff1a;图存在拓扑排序等价于图不存在环。其实可以想出&#xff1a;如果是一个环&#xff0c;那么…