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

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...