制作压缩包文件的方法 怎样压缩文件大小


制作压缩包文件的方法 怎样压缩文件大小

文章插图
一、压缩介绍
现在这个时代电子信息发展迅猛 , 数据量越来越庞大 , 小米10手机摄像头技术都达到1亿像素;2021年9月 , 三星甚至提出2亿像素的传感器技术 。因此 , 压缩数据成为数据存储和传输中用于降低成本和时间的关键技术 。
2亿像素的ISOCELL HP1 , 5000万像素的ISOCELL GN5
压缩技术又分为有损压缩与无损压缩两类 , 两者的主要区别是:有损压缩还原时跟原始信息不是完全一样 , 但是不影响使用 , 比如音频、图片、视频类信息;无损压缩还原时跟原始信息完全一样 , 比如本文要介绍的常用压缩软件RAR , Zip等压缩方法 。
Windows下比较熟知的压缩方法有zip或者RAR , 为了便于压缩与解压的使用 , 开发了许多的解压缩软件 , 比如:winrar、好压、快压、360压缩等 。但是在Linux比较常用的压缩方法却是gzip、bzip2、compress等 , 比如官方下载的gcc编译器源码压缩文件就是基于gzip压缩的:gcc-11.2.0.tar.gz 。
打包或者压缩格式很多 , 目前主流使用的有如下表所示几种:
表一
表二
对于表二类似“xxx.tar.gz”等格式的文件 , 是Linux下的一种文件格式 , 生成该格式文件分为两个步骤 , (1)、xxx文件打包为xxx.tar;(2)、xxx.tar压缩为xxx.tar.gz 。下面大概介绍Linux下tar打包与gz、bz2等压缩工具的使用 。
二、Linux打包tar
由于Linux中的很多压缩程序只能针对一个文件进行压缩 , 因此如果包含许多文件 , 则需要将所有文件打包为一个文件 , 然后再压缩 。
Linux下最常用的打包程序就是tar , 使用tar程序打出来的包我们常称为tar包 , tar包文件的扩展名通常是.tar 。生成tar包后 , 就可以用其它的程序(gzip或bzip2等)来进行压缩了 。
2.1、tar文件结构
Tar指令只用于多文件打包 , 并不压缩文件 , 因此打包后的文件并没有减小 , 反而由于在打包时会在每个文件头加入512字节的tar头部信息 , 使得打包后的文件略微变大 。比如当前有文件a1.c、a2.c、a3.c , 每个文件100k , 打包后文件的文件结构如下图所示:
如上图所示 , 3个文件共300k , 通过tar打包后 , 至少为301.5k;因为tar文件是按块存储 , 每个块为512bytes大小 , 所以tar文件大小应该为512字节的倍数 , 如果a1.c文件大小为99.7k , 则通过tar打包时 , 最后0.3k必须填充为0 , 补足至100k(满足512字节的倍数) 。
2.2、tar_header头部结构
tar_header为512字节的块结构 , 保存后面的文件信息 , tar源码的tar.h文件中该header结构如下图所示 , 该header结构刚好是一个块大小 , 即512字节每个块 。
tar源码版本为“tar-1.26.tar.gz” , 可通过以下网盘链接下载:
链接:https://pan.baidu.com/s/1T34dYxBRWKYE8jmFvv_2aw
提取码:ppw2
tar打包函数入口为create_archive() , 在源码文件create.c中 。
2.3、tar命令打包
tar 命令用于打包操作时 , 该命令的基本格式为:tar [选项] 源文件或目录 。tar命令常用的选项及各自的含义如下图所示 。
(1)、创建2个文件a1.txt、a2.txt , 分别输入如下内容:
(2)、tar命令进行打包 , 生成aTar.tar打包文件


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: