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

Linux 常用压缩格式

Linux 常用压缩格式简介

Linux系统用户可以根据自己的需求选择合适的压缩工具来进行文件压缩和解压操作。Linux系统中常用的压缩软件都有相应的命令行工具,并且可以通过软件包管理器进行安装。主要有gzip、bzip2、zip、tar、7z。
gzip:gzip是一个广泛使用的开源压缩工具,它通常用于将单个文件进行压缩,生成以".gz"为后缀的压缩文件。gzip的压缩率较高,但无法压缩目录。
bzip2:与gzip类似,bzip2也是一种常见的压缩工具,它能够提供更高的压缩比和更长的压缩时间。bzip2生成的压缩文件通常以".bz2"为后缀。
zip:zip是一个常用的跨平台压缩工具,它可以对文件和目录进行压缩,并支持密码保护和分卷压缩。在Linux系统中,通常需要额外安装zip软件包。
tar:tar并不是一个压缩工具,而是一个归档工具,用于将多个文件或目录打包成一个文件。通常会搭配其他压缩工具(如gzip或bzip2)来对打包后的文件进行压缩,生成以".tar.gz"或".tar.bz2"为后缀的压缩文件。
7z:7z是一种高效的压缩工具,能够生成以".7z"为后缀的压缩文件,支持多种压缩算法和加密方式。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:压缩率直接压缩时间,而压缩格式决定压缩率,按照实际场景选取合适压缩格式。

文章目录

  • Linux 常用压缩格式简介
  • 1. 常用压缩格式
    • 1.1 tar
      • 1.1.1 .tar格式
      • 1.1.2 .tar.bz2 格式
      • 1.1.3 .tar.gz 格式
    • 1.2 gzip
    • 1.3 bzip2
    • 1.4 zip
    • 1.5 rar
    • 1.6 7z
  • 2. 压缩格式对比
    • 2.1 压缩耗时
    • 2.2 压缩耗时对比
  • 结语


1. 常用压缩格式

1.1 tar

tar 是一个用于创建和提取压缩包的命令。

1.1.1 .tar格式

创建 tar 压缩包:

tar -cvf archive.tar /path/to/directory
  • -c:表示创建新的压缩包。
  • -v:显示归档过程中处理的文件。
  • -f:指定压缩包的名称。

提取 tar 压缩包:

tar -xvf archive.tar
  • -x:从压缩包中提取文件。
  • -v:显示提取过程中处理的文件。
  • -f:指定压缩包的名称。

1.1.2 .tar.bz2 格式

压缩成.tar.bz2格式:

tar -cvjf archive.tar.bz2 /path/to/directory_or_file

-c:创建新的压缩文件
-v:显示详细输出
-j:使用bzip2算法进行压缩
-f:指定压缩文件的名称

从.tar.bz2文件中提取:

tar -xvjf file.tar.bz2 -C /path/to/destination

-x:解压文件
-v:显示详细输出
-j:使用bzip2算法解压缩
-f:指定要解压的文件

1.1.3 .tar.gz 格式

压缩并创建 tar.gz 文件:

tar -czvf archive.tar.gz /path/to/directory
  • -z:使用 gzip 压缩/解压文件。
  • 其他参数与上述相同。

提取 tar.gz 文件:

tar -xzvf archive.tar.gz
  • -z:使用 gzip 解压文件。
  • 其他参数与上述相同。

提示:想要将文件提取到指定目录,可以使用-C选项:

tar -xvjf archive.tar.bz2 -C /path/to/destination

1.2 gzip

gzip 是一种常用的文件压缩工具,它通常与 tar 命令结合使用。

压缩文件:

gzip filename

解压缩文件:

gzip -d filename.gz

1.3 bzip2

bzip2 是一种高效的文件压缩工具,压缩后的文件通常比 gzip 更小。

压缩文件:

bzip2 filename

解压缩文件:

bzip2 -d filename.bz2

1.4 zip

zip 是一种常见的跨平台压缩和归档格式,可以在 Windows、Linux 和 macOS 中使用。

创建 zip 文件:

zip archive.zip file1 file2 file3

file1、file2和file3压缩成一个名为archive.zip的压缩文件。

zip -r archive.zip directory

这将会将整个directory目录以及其中的所有文件和子目录压缩成一个名为archive.zip的压缩文件。

解压 zip 文件:

unzip archive.zip

提取压缩文件

unzip archive.zip

这将会解压缩名为archive.zip的文件,并还原成原始的未压缩文件或目录。

你也可以使用-d选项来将文件提取到指定目录:

unzip archive.zip -d /path/to/destination

这将会把压缩文件中的内容提取到/path/to/destination目录。

1.5 rar

rar 是一种常用的压缩和归档格式,常用于 Windows 系统。

创建 rar 文件:

rar a archive.rar file1 file2 file3

这条命令将会把file1、file2和file3压缩成一个名为archive.rar的压缩文件。

想要设置压缩级别,最高压缩级别(5),可以使用-m选项:

rar a -m5 archive.rar file1 file2 file3

解压 rar 文件:

unrar x archive.rar

-e选项来将文件提取到指定目录:

rar e archive.rar /path/to/destination

将会把压缩文件中的内容提取到/path/to/destination目录。

1.6 7z

7z 是一种高压缩比的文件压缩工具,支持多种压缩和归档格式。在Linux系统中,你可以使用7z命令来进行文件的压缩和提取操作。

压缩文件

7z a archive.7z file1 file2 file3

这条命令将会把file1、file2和file3压缩成一个名为archive.7z的压缩文件。

如果你想要设置压缩级别,可以使用-mx选项:

7z a -mx=9 archive.7z file1 file2 file3

这将会以最高压缩级别(9)来压缩文件。

提取压缩文件

7z x archive.7z

这会解压缩名为archive.7z的文件,并还原成原始的未压缩文件或目录。

你也可以使用-o选项来将文件提取到指定目录:

7z x archive.7z -o/path/to/destination

这将会把压缩文件中的内容提取到/path/to/destination目录。

** 7z 压缩参数 **
-a 添加文件/文件夹到压缩包
-t 指定压缩格式,如-t7z表示指定压缩格式为7z
-o 是指定解压到的目录
-r 递归所有的子文件夹,这个选项通常可以忽略
-x 解压文件
通过这些命令,你可以在Linux系统中使用7z来进行文件的压缩和提取操作。

2. 压缩格式对比

压缩率和压缩时间是评估不同压缩算法和工具性能的重要指标。
压缩率:压缩率指的是在压缩文件后,文件大小相对于原始文件大小的比率。更高的压缩率意味着压缩效果更好,文件变得更小,节省了存储空间。压缩率可以通过计算压缩后文件大小与原始文件大小的比值来得到,常用百分比表示。
压缩时间:压缩时间指的是执行压缩操作所花费的时间。较短的压缩时间意味着压缩速度更快,适用于需要频繁进行大量文件压缩的场景。然而,有些情况下压缩时间并不是主要关注点,比如在后台进行压缩操作时,压缩时间可以放宽。

2.1 压缩耗时

各种压缩格式,压缩耗时。

~$ time tar cf test.tar testreal    0m0.289s
user    0m0.010s
sys     0m0.278s
~$ time tar cjf test.tar.bz2 testreal    0m56.559s
user    0m55.241s
sys     0m3.380s
~$ time tar czf test.tar.gz test/real    0m18.175s
user    0m17.855s
sys     0m1.589s
~$ time zip -r test.zip testreal    0m11.198s
user    0m10.851s
sys     0m0.270s~$ time rar a test.rar test
real    0m19.324s
user    1m10.378s
sys     0m26.131s~$ time 7z a test.7z test
real    0m11.704s
user    1m30.378s
sys     0m2.963s

压缩耗时:.tar.bz2 > .rar > .tar.gz > .7z > .zip > .tar。

2.2 压缩耗时对比

查看原始文件或目录大小

~$ du -h --max-depth=0 test
402M    test

查看压缩后文件大小

~$ ls test.* -lh
-rw-r--r-- 1 ice ice 188M Nov 19 14:46 test.7z
-rw-r--r-- 1 ice ice 199M Nov 19 14:45 test.rar
-rw-r--r-- 1 ice ice 388M Nov 19 14:29 test.tar
-rw-r--r-- 1 ice ice 198M Nov 19 14:31 test.tar.bz2
-rw-r--r-- 1 ice ice 199M Nov 19 14:28 test.tar.gz
-rw-r--r-- 1 ice ice 203M Nov 19 14:44 test.zip

压缩率:.7z > .tar.bz2 > .rar > tar.gz > zip > tar。

汇总以上测试结果到如下表中:

压缩格式压缩耗时压缩后大小压缩率百分比
.tar0.289s388M96.5
.tar.bz256.559s198M49.3
.tar.tgz18.175s199M49.5
.zip11.198s203M40.5
.rar19.324s199M49.5
.7z11.704s188M46.8

在实际应用中,选择合适的压缩算法和工具需要综合考虑压缩率和压缩时间。某些情况下,需要更高的压缩率来节省存储空间,而在另一些情况下,更看重压缩时间以提升效率。根据具体需求,可以权衡两者之间的关系,选择最适合的压缩算法和工具。

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。

相关文章:

Linux 常用压缩格式

Linux 常用压缩格式简介 Linux系统用户可以根据自己的需求选择合适的压缩工具来进行文件压缩和解压操作。Linux系统中常用的压缩软件都有相应的命令行工具,并且可以通过软件包管理器进行安装。主要有gzip、bzip2、zip、tar、7z。 gzip:gzip是一个广泛使…...

高效背单词——单词APP安利

大英赛,CET四六级,以及考研英语,都在不远的未来再度来临,年复一年的考试不曾停息,想要取得好成绩,需要我们的重视并赋予相应的努力。对于应试英语,词汇量是不可忽略的硬性要求。相比于传统默写&…...

力扣 字母异位词分组 哈表 集合

👨‍🏫 力扣 字母异位词分组 ⭐ 思路 由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。 🍑 AC code class Solut…...

⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL存储过程 1. 介绍2. 使用3. 变量①系统变…...

使用SpringBoot进行游戏服务器开发

背景: 之前一直只考虑用JavaSe进行游戏服务器开发,目前项目使用了Spring,发现还是非常好的,好处如下: 好处1:依赖注入非常方便,我们只使用Spring最基本的功能即可,这样子就算是有一些模块不使用Spring管理…...

数据结构——树状数组

文章目录 前言问题引入问题分析树状数组lowbit树状数组特性初始化一个树状数组更新操作前缀和计算区间查询 总结 前言 原题的连接 最近刷leetcode的每日一题的时候,遇到了一个区间查询的问题,使用了一种特殊的数据结构树状数组,学习完之后我…...

Untiy 使用RotateAround()方法实现物体围绕某个点或者某个物体旋转

Untiy 实现物体围绕指定点或者某个物体旋转,可使用RotateAround()方法。 语法: public void RotateAround(Vector3 point, Vector3 axis, float angle); 其中,point:旋转中心点位置; axis:要围绕的轴,如x,y,z angel…...

图像分类(五) 全面解读复现ResNet

解读 Abstract—摘要 翻译 更深的神经网络往往更难以训练,我们在此提出一个残差学习的框架,以减轻网络的训练负担,这是个比以往的网络要深的多的网络。我们明确地将层作为输入学习残差函数,而不是学习未知的函数。我们提供了非…...

使用html2canvas转换table为图片时合并单元格rowspan失效,无边框显示问题解决(React实现)

最近使用 html2canvas导出Table表单为图片,但是转换出的图片被合并的单元格没有显示边框 查了原因是因为我为tr设置了背景色,然后td设置了rowspan,设置了rowspan的单元格就会出现边框不显示的问题。 解决方法就是取消tr的背景色,然…...

pandas教程:Time Series Basics 时间序列基础

文章目录 11.2 Time Series Basics(时间序列基础)1 Indexing, Selection, Subsetting(索引,选择,取子集)2 Time Series with Duplicate Indices(重复索引的时间序列) 11.2 Time Seri…...

【C++初阶】STL详解(四)vector的模拟实现

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…...

Zookeeper学习笔记(2)—— Zookeeper API简单操作

前置知识&#xff1a;Zookeeper学习笔记&#xff08;1&#xff09;—— 基础知识-CSDN博客 Zookeeper集群搭建部分 前提&#xff1a;保证zookeeper集群处于启动状态 环境搭建 依赖配置 <dependencies><dependency><groupId>junit</groupId><arti…...

YOLOv8-Seg改进:Backbone改进 |Next-ViT堆栈NCB和NTB 构建先进的CNN-Transformer混合架构

🚀🚀🚀本文改进:Next-ViT堆栈NCB和NTB 构建先进的CNN-Transformer混合架构,包括nextvit_small, nextvit_base, nextvit_large,相比较yolov8-seg各个版本如下: layersparametersgradientsGFLOPsnextvit_small61033841075...

DocCMS keyword SQL注入漏洞复现 [附POC]

文章目录 DocCMS keyword SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 DocCMS keyword SQL注入漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测…...

利用(Transfer Learning)迁移学习在IMDB数据上训练一个文本分类模型

1. 背景 有些场景下&#xff0c;开始的时候数据量很小&#xff0c;如果我们用一个几千条数据训练一个全新的深度机器学习的文本分类模型&#xff0c;效果不会很好。这个时候你有两种选择&#xff0c;1.用传统的机器学习训练&#xff0c;2.利用迁移学习在一个预训练的模型上训练…...

pom.xml格式化快捷键

在软件开发和编程领域&#xff0c;"格式化"通常指的是将代码按照一定的规范和风格进行排列&#xff0c;以提高代码的可读性和维护性。格式化代码有助于使代码结构清晰、统一&#xff0c;并符合特定的编码规范。 格式化可以包括以下方面&#xff1a; 缩进&#xff1a…...

【短文】【踩坑】可以在Qt Designer给QTableWidge添加右键菜单吗?

2023年11月18日&#xff0c;周六上午 今天早上在网上找了好久都没找到教怎么在Qt Designer给QTableWidge添加右键菜单的文章 答案是&#xff1a;不可以 在Qt Designer中无法直接为QTableWidget添加右键菜单。 Qt Designer主要用于创建界面布局和设计&#xff0c;无法直接添加…...

Git常用配置

git log 美化输出 全局配置参数 git config --global alias.lm "log --no-merges --color --dateformat:%Y-%m-%d %H:%M:%S --authorghost --prettyformat:%Cred%h%Creset - %Cgreen(%cd)%C(yellow)%d%Cblue %s %C(bold blue)<%an>%Creset --abbrev-commit"…...

力扣每日一题-数位和相等数对的最大和-2023.11.18

力扣每日一题&#xff1a;数位和相等数对的最大和 开篇 这道每日一题还是挺需要思考的&#xff0c;我绕晕了好久&#xff0c;根据题解的提示才写出来。 题目链接:2342.数位和相等数对的最大和 题目描述 代码思路 1.创建一个数组存储每个数位的数的最大值&#xff0c;创建一…...

【win32_001】win32命名规、缩写、窗口

整数类型 bool类型 使用注意&#xff1a; 一般bool 的false0&#xff1b;true1 | 2 | …|n false是为0&#xff0c;true是非零 不建议这样用&#xff1a; if (result TRUE) // Wrong! 因为result不一定只返回1&#xff08;true&#xff09;&#xff0c;当返回2时&#xff0c…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...