LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux下最常用的打包程序是什么?怎么破?

2023年7月13日 180点热度

一、压缩介绍

如今这个时代电子信息发展迅猛,数据量越来越庞大,魅族10手机摄像头技术都达到1亿象素;2021年9月,三星甚至提出2亿象素的传感技术。为此,压缩数据成为数据储存和传输中用于减少成本和时间的关键技术。

2亿象素的ISOCELLHP1,5000万象素的ISOCELLGN5

压缩技术又分为有损压缩与无损压缩两类,二者的主要区别是:有损压缩还原时跟原始信息不是完全一样,而且不影响使用,例如音频、图片、视频类信息;无损压缩还原时跟原始信息完全一样,例如本文要介绍的常用压缩软件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 常见文件打包压缩命令_linux打包压缩命令rar

因为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”,可通过以下云盘链接下载:

提取码:ppw2

tar打包函数入口为create_archive(),在源码文件create.c中。

2.3、tar命令打包

tar命令用于打包操作时,该命令的基本格式为:tar[选项]源文件或目录。tar命令常用的选项及各自的含意如右图所示。

(1)、创建2个文件a1.txt、a2.txt,分别输入如下内容:

(2)、tar命令进行打包linux运维最佳实践,生成aTar.tar打包文件

2.4、aTar.tar文件内容剖析

通过UltraEdit打开里面tar命令打包生成的aTar.tar文件,可以看见aTar.tar文件格式为:首先是a1.txt的tar_header信息,之后是a1.txt的内容;接着是a2.txt的tar_header信息,之后是a2txt的内容。

(1)、第一块:从地址0x00000000h位置到0x00000200h之间(共512字节)是a1.txt的tar_header信息:

按照如上结构structposix_header结构体的定义,说明几个数组涵义:

a>、最开始的位置储存name,大小为100字节,内容为61312E74787400,即为“a1.txt”;

b>、后面是mode数组内容为3030303036343400,即为“0000644”,表示a1.txt文件的操作权限,与ls命令查询a1.txt文件权限一致。

c>、uid、gid信息,即当前linux登陆用户id与组id,这两个id的内容均为3030303137353000,即为“0001750”,该值为八补码,转为十补码为1000,与id命令查询的结果一致。

d>、size数组值为303030303030303030333300,即为“”,该值为八补码,转为十补码为27,表示a1.txt文件大小为27字节,与文件内容大小一致:

e>、magic数组值为757374617220linux培训学校,即为“ustar”,表示当前包为tar文件;

f>、uname与gname为当前linux登陆用户名与组名,即kevin。

(2)、第二块:从地址0x00000200h位置到0x00000400h之间(共512字节)是a1.txt的内容,即使a1.txt的内容为27字节,并且块大小为512,不足地方补0。

(3)、第三块:从地址0x00000400h位置到0x00000600h之间(共512字节)是a2.txt的tar_header信息:

a2.txt的tar_header信息格式与a1.txt的tar_header一致,其size数组为“”,转为十补码为21,表示a2.txt内容为21个字符,确认一致。

(4)、第四块:从地址0x00000600h位置到0x00000800h之间(共512字节)是a2.txt的内容,即使a2.txt的内容为21字节,并且块大小为512,不足地方补0。

注:以上与“2.1、tar文件的结构一致”!!!

三、Linux压缩至gz、bz2、z格式

linux打包压缩命令rar_linux打包压缩命令_linux 常见文件打包压缩命令

Linux下文件压缩属于无损压缩,解压缩还原时必须和原文件一致,否则会造成程序运行错误;其基本原理为,通过查找文件内的重复字节linux 常见文件打包压缩命令,构建一个相同字节的辞典文件,并用一个代码表示。例如如下文件:

重复的字符串“小团扇的笔记”可以用一个代码“a”表示,则文件内容可以表示为:

这文件的大小就缩小了,还原回去也是无信息损失的。

其实压缩算法远比这个复杂,Linux下的压缩工具常用的有GNU组织开发的gzip(.gz)、压缩能力更强的bzip2(.bz2)、比较古老的压缩指令compress(.Z)、以及最新的提供最佳压缩率的XZ(.xz)。

这种压缩命令只能拿来压缩文件,不能压缩目录,虽然指定了目录,也只能压缩目录内的所有文件;同时只能压缩单个文件,因而一般与tar打包命令一起使用,在tar打包命令中加入如下选项即可调用对应的压缩命令进行压缩:

3.1、gzip压缩

在tar指令中加入‘-z’选项,调用gzip进行压缩。

解压缩命令为:tar–xzfa.tar.gz。

3.2、bzip2压缩

在tar指令中加入‘-j’选项,调用bzip2进行压缩。

解压缩命令为:tar–xjfa.tar.bz2。

3.3、xz压缩

在tar指令中加入‘-J’选项,调用xz进行压缩。

解压缩命令为:tar–xJfa.tar.xz。

3.4、compress压缩

现今新的Linux系统都没有安装ncompress压缩工具,须要先安装:

之后在tar指令中加入‘-Z’选项,调用compress进行压缩。

解压缩命令为:tar–xZfa.tar.Z。

3.5、其他压缩工具

Windows下常用的压缩格式zip与rar在Linux下也是支持的。

(1)、Linux下提供了zip和unzip程序,zip是压缩程序linux 常见文件打包压缩命令,unzip是解压程序;

(2)、linux下处理.rar文件,须要安装RARforLinux,如下指令:#tar-xzpvfrarlinux-3.2.0.tar.gz#cdrar#make安装后有rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。

,

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux系统 tar tar打包
最后更新:2023年7月13日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You linux软件开发如何入门?学习Linux步骤及学习方法介绍 14年Linux发行版的有趣历史观点 Linux中不像Windows可以直接在控制面板中卸载? 2018年波及众多Linux发行版的性能对比会更加深入 如何用源码包安装的软件?name的方法总结
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
Linux管理员的职业生涯中如何查看日志文件的位置 基于RK3399SoC的ARM板硬件资源丰富 渗透测试最重要的阶段之一DNS枚举工具 如何在linux下操作和查看用户状态和进程状态? Linux集群技术热点与发展趋势分分: LinuxDNS服务器,如何安装、配置和维护它? 升级Linux内核版本的步骤及注意事项(详细介绍) Contents[show]如何在Linux中创建目录和子文件夹? Linux内核启动注册中断内核中断源如何实现多个定时器 Linux软件安装目录及位置4种方法(服务器学习) UNIX环境高级编程(2th非扫描版) Linux删除目录下的文件的10种方法,赶紧收藏! Linux通过chkconfig设置开机启动服务创建的几种常见方式 在Linux上安装应用的所有不同方法的信息 RedHatEnterpriseLinux5网络服务应用图书简介 轻松学会Linux创建用户设置密码,防止安全风险 【中信建投】供应MXNTP10系列采用北斗卫星时钟信号 1.使用标准Ubuntu仓库进行自动安装2.使用官方的NVIDIA驱动 proc的缩写与内核相关的文件-上海怡健医学 Linux的内核放在了哪里?/boot的启动目录一览
标签聚合
软件 操作 内核 linux系统 文件 应用 虚拟机 文件目录 命令 linux服务器
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 78篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.