当前位置: 首页 > 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…...

机器学习第8天:SVM分类

文章目录 机器学习专栏 介绍 特征缩放 示例代码 硬间隔与软间隔分类 主要代码 代码解释 非线性SVM分类 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 作用&#xff1a;判别种类 原理&#xff1a;找出一个决策边界&#xff0c;判断数据所处区域来识别种类 简单…...

AI工具合集

网站&#xff1a;未来百科 | 为发现全球优质AI工具产品而生 (6aiq.com) 如今&#xff0c;AI技术涉及到了很多领域&#xff0c;比如去水印、一键抠图、图像处理、AI图像生成等等。站长之家之前也分享过一些&#xff0c;但是在网上要搜索找到它们还是费一些功夫。 今天发现了一…...

代码随想录算法训练营Day 54 || 392.判断子序列、115.不同的子序列

392.判断子序列 力扣题目链接(opens new window) 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;&quo…...

C 语言 gets()和puts()

C 语言 gets()和puts() gets()和puts()在头文件stdio.h中声明。这两个函数用于字符串的输入/输出操作。 C gets()函数 gets()函数使用户可以输入一些字符&#xff0c;然后按Enter键。 用户输入的所有字符都存储在字符数组中。 空字符将添加到数组以使其成为字符串。 gets()允…...

核—幂零分解

若向量空间 V \mathcal V V存在子空间 X \mathcal X X与 Y \mathcal Y Y&#xff0c;当 X Y V X ∩ Y 0 \mathcal {X\text{}Y\text{}V}\\ \mathcal {X}\cap \mathcal {Y}0 XYVX∩Y0 时称子空间 X \mathcal X X与 Y \mathcal Y Y是完备的&#xff0c;其中记为 X ⊕ Y V \ma…...

轻松掌控财务,分析账户花销,明细记录支出情况

随着科技的发展&#xff0c;我们的生活变得越来越智能化。然而&#xff0c;对于许多忙碌的现代人来说&#xff0c;管理财务可能是一件令人头疼的事情。复杂的账单、花销、收入&#xff0c;这些可能会让你感到无从下手。但现在&#xff0c;我们有一个全新的解决方案——一款全新…...

竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …...

11. Spring源码篇之实例化前的后置处理器

简介 spring在创建Bean的过程中&#xff0c;提供了很多个生命周期&#xff0c;实例化前就是比较早的一个生命周期&#xff0c;顾名思义就是在Bean被实例化之前的处理&#xff0c;这个时候还没实例化&#xff0c;只能拿到该Bean的Class对象&#xff0c;如果在这个时候直接返回一…...

Python-Python高阶技巧:HTTP协议、静态Web服务器程序开发、循环接收客户端的连接请求

版本说明 当前版本号[20231114]。 版本修改说明20231114初版 目录 文章目录 版本说明目录HTTP协议1、网址1.1 网址的概念1.2 URL的组成1.3 知识要点 2、HTTP协议的介绍2.1 HTTP协议的概念及作用2.2 HTTP协议的概念及作用2.3 浏览器访问Web服务器的过程 3、HTTP请求报文3.1 H…...

P1304 哥德巴赫猜想

题目描述 输入一个偶数 N,验证 4∼N 所有偶数是否符合哥德巴赫猜想:任一大于 22 的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如 1010,10=3+7=5+510=3+7=5+5,则 10=5+510=5+5 是错误答案。 输入格式 第一行输入一个…...