tar文件结构

tar文件结构什么是 tar 文件 tar 文件是以一定的方式 将多文件合成一个单文件 并不对文件进行压缩处理 tar 最初的设计目的是将文件备份到磁带上 tapearchive 因而得名 tar tar 包的结构文件头 文件内容 文件头 文件内容文件末尾 typeHeaderst name 100 byte mode 8 byte owner

什么是tar文件

tar文件是以一定的方式,将多文件合成一个单文件,并不对文件进行压缩处理。tar最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。

tar包的结构

文件头 – 文件内容 – 文件头 – 文件内容 —— 文件末尾

 type Header struct { 
    name [100]byte mode [8]byte owner [8]byte group [8]byte size [12]byte mtime [12]byte checkSum [8]byte fileType byte linkName [100]byte magic [6]byte   version [2]byte   uname [32]byte   gname [32]byte   devmajor [8]byte   devminor [8]byte   prefix [155]byte   padding [12]byte } 

以上是Tar中保存文件信息的数据结构,其后跟着的就是文件的内容。

  • 其中,文件大小,修改时间,checksum都是存储的对应的八进制字符串,字符串最后一个字符为空格字符
  • checksum的计算方法为出去checksum字段其他所有的512-8共504个字节的Ascii码相加的值再加上256
  • 文件内容以512字节为一个块进行分割,最后一个块不足部分以0补齐
  • 多个文件合成的tar,存储格式为:tar的头结构,文件体,tar头,文件体……。当所有文件都存储完成后,在文件末尾补上一个全零的tar结构(即1024个零值)
  • 所有的tar文件大小都是512的倍数
  • 一个空的文件,打包成tar后,为512*3个字节

新建一个空的tar,用010 Editor打开,如下:

新建文本文档.tar

检测tar文件格式的方法:

注意:在windows下面,不支持uid、uname等,有的甚至不支持magic,这样就比较麻烦了。

参照:https://www.cnblogs.com/stephen-init/archive/2012/10/09/2716779.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232902.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • struts2讲解

    struts2讲解Struts2部分1.JavaEE软件三层结构和MVC的区别?JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层)、业务逻辑层、数据持久层。【其中WEB层会使用前端控制器模式】MVC是一种思想,是一种模式,将软件分为Model模型、View视图、Controller控制器。【JavaEE开发更强调三层结构,web层开发更注重MVC】Struts2就是web层开发框架,符合MVC模式;struts1、webwork、jsf、SpringMVC都是MVC…

    2025年7月22日
    3
  • mybatis插件原理_mybatis分页查询实现

    mybatis插件原理_mybatis分页查询实现目录一、mybatis插件介绍二、mybatis插件原理1、创建2、拦截1)首先是ParameterHandler的创建,在Configuration类当中:2)interceptorChain保存了所有的拦截器(interceptors),是mybatis初始化的时候创建的。3、应用1)类相关代码2)插件配置,在sqlMapConfig.xml中三、自定义插件1、插件接口2、自定义插件1)相关类代码2)相关配置sqlMapConfig.xml3)mapper接口4)mapper.

    2022年10月7日
    1
  • WDS 动手实验手册

    WDS 动手实验手册

    2021年8月2日
    57
  • 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0

    怎么彻底卸载mysql8.0_彻底卸载MySQL8.0彻底卸载MySQL8.0(WIN10)环境需求win10MySQL8.0彻底卸载1.停止MySQL服务启动任务管理器—>选择服务—->找到MySQL—->右键停止如果有多个MySQL服务,也全部都要停掉2.卸载MySQL相关所有组件打开看控制面板—->卸载程序—->卸载与MySQL相关的所有组件3.删除MySQL安装目录下的MySQL文件夹如果在其…

    2022年6月17日
    82
  • list转json字符串,实体类包含list转实体类「建议收藏」

    list转json字符串,实体类包含list转实体类「建议收藏」StringjsonString=JSON.toJSONString(list);//list转json字符串 List<FanMate>list=JSON.parseArray(jsonString,FanMate.class);//listjson字符串转list StringjsonString=JSON.toJSONString(entity);//list转json字符串 FanMateentity=JSON.parseObject(…

    2022年10月18日
    2
  • nodejs 代理服务器_nodejs部署前端项目

    nodejs 代理服务器_nodejs部署前端项目代理服务器的原理案例安装express、http-proxy-middlewareapp.js文件nodeapp.jsvarexpress=require(‘express’);varapp=express();app.use(express.static(‘./public’));app.listen(3000);在public文件夹下建立a.html<!DOCTYPEhtml><htmllang=”en”><hea

    2025年7月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号