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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows ODT快速部署

    Windows ODT快速部署本来是购买了正版的VISIO批量许可,到VLSC中心以为直接下载个镜像包完活,结果发现有点复杂,特来记录。1.首先需要下载ODT工具下载路径https://docs.microsoft.com/en-us/DeployOffice/office2019/deploy2.下载后,需要配置一个XML文件,记录一下安装选项。微软有图形化的生成XML的方式:https://config.office.com/deploymentsettings3.生成后,将XML文件…

    2025年8月26日
    4
  • 简述android触屏事件的处理_移动端touch事件有哪些

    简述android触屏事件的处理_移动端touch事件有哪些本文介绍了Android系统中触屏事件的相关知识,包括触屏事件的产生,分类,触屏事件序列,以及触屏事件在代码中的表示方式。了解这些内容,是理解Android触屏事件的分发,拦截和处理的基础。

    2025年10月19日
    3
  • pycharm安装后如何使用_Pycharm安装教程

    pycharm安装后如何使用_Pycharm安装教程http://blog.csdn.net/u014044812/article/details/78727496 激活码https://www.cnblogs.com/beginner-boy/p/7785041.html由于本人也是开发语言的学习小白,所以对于开发时使用的工具也不算太熟悉,不过这里还是要推荐一下本人使用过的两款工具:1、pycharm ;2、eclipse这是我用的比较顺…

    2022年8月28日
    3
  • 想要复制网页的文字网页不让复制_如何复制文字

    想要复制网页的文字网页不让复制_如何复制文字作者:iamlaosong当我们需要复制网页上的内容时,往往会碰到不能复制的情况,面对这个问题,不同的情况有不同的应对方法,比如禁止JavaScript运行,查看源代码,另存为网页文件等。这些方法也可以用,现在有个更通用的办法是QQ屏幕截图所带的功能,不管网页用的什么技术,能看见就可以复制,特别适合不太懂技术的人。要用QQ截图功能,QQ肯定是要登录的,然后用浏览器打开需要复制文字的网页,按QQ屏幕截图快捷键Ctrl+Alt+A选择需要复制文字的区域,在弹出的菜单中点击“翻译”或者“屏幕识图”两个按钮

    2022年10月12日
    2
  • Vue生成二维码_生成二维码插件

    Vue生成二维码_生成二维码插件首先安装一下面这个插件cnpminstallvue-qr-S接下来在需要生产并下载二维码的页面引入importVueQrfrom’vue-qr’并在components中注册为组件components:{VueQr//二维码组件},data(){ return{ config:{//二维码配置logo:”,value:”} }

    2022年9月25日
    4
  • compound extremes_conscientiousness

    compound extremes_conscientiousnessextremeComponents是一个好用的表格插件,可以方便的对分页,导出excel等进行操作并且可以和任何框架进行集成,包括springmvc,struts,struts2等

    2022年8月20日
    12

发表回复

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

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