如何生成具有全局扩展属性 ('g') 初始条目的 PAX Tar 存档?
How to generate a PAX Tar archive with an Global Extended Attributes ('g') initial entry?
在 Linux 中,我尝试使用以下任一命令生成包含全局扩展属性条目的未压缩 PAX 存档:
A) 指定 pax 选项(暗示 --xattrs
):
tar cvf file.tar folder/* --xattrs --pax-option=gname:=MyGroup,uname:=MyUser
B) 指定 xattrs 支持(暗示 --format=pax
):
tar cvf file.tar folder/* --format=pax --pax-option=gname:=MyGroup,uname:=MyUser
这两个命令都成功生成了一个文件,但是当我用 my hex editor 打开文件时,第一个条目的类型是 'x',而不是预期的 'g' 类型。
我做错了什么?
环境:
- Ubuntu 20.04 ARM64
tar
工具版本:GNUtar1.30
更多信息
tar
工具手册规定--pax-option
和--xattrs
是操作扩展属性的参数,但没有提到创建全局扩展属性条目。
如果我理解正确,Tar 规范说明 PAX 格式支持两种特殊的条目:
类型标志'x'
扩展属性条目。这是一个位于它所描述的实际文件系统条目之前的条目。它允许用户使用 UTF8 字符串在数据部分指定任意数量的属性,格式为 BYTES NAME=VALUE\n
.
类型标志'g'
全局扩展属性条目。与 'x' 条目相同的特征,但不同之处在于只有一个这样的条目:该条目位于存档的第 0 个位置并描述适用于所有其余条目的属性。
来源
答案在 gnu 文档中。我需要使用 globexthdr
前缀来表示我想创建一个全局扩展属性头条目,如下所示:
tar cvf file.tar folder/* --format=pax --pax-option=globexthdr.gname:=MyGroup,globexthdr.uname:=MyUser
我用十六进制编辑器打开生成的文件,我可以确认开头有一个 'g' 条目。
在 Linux 中,我尝试使用以下任一命令生成包含全局扩展属性条目的未压缩 PAX 存档:
A) 指定 pax 选项(暗示 --xattrs
):
tar cvf file.tar folder/* --xattrs --pax-option=gname:=MyGroup,uname:=MyUser
B) 指定 xattrs 支持(暗示 --format=pax
):
tar cvf file.tar folder/* --format=pax --pax-option=gname:=MyGroup,uname:=MyUser
这两个命令都成功生成了一个文件,但是当我用 my hex editor 打开文件时,第一个条目的类型是 'x',而不是预期的 'g' 类型。
我做错了什么?
环境:
- Ubuntu 20.04 ARM64
tar
工具版本:GNUtar1.30
更多信息
tar
工具手册规定--pax-option
和--xattrs
是操作扩展属性的参数,但没有提到创建全局扩展属性条目。
如果我理解正确,Tar 规范说明 PAX 格式支持两种特殊的条目:
类型标志'x'
扩展属性条目。这是一个位于它所描述的实际文件系统条目之前的条目。它允许用户使用 UTF8 字符串在数据部分指定任意数量的属性,格式为 BYTES NAME=VALUE\n
.
类型标志'g'
全局扩展属性条目。与 'x' 条目相同的特征,但不同之处在于只有一个这样的条目:该条目位于存档的第 0 个位置并描述适用于所有其余条目的属性。
来源
答案在 gnu 文档中。我需要使用 globexthdr
前缀来表示我想创建一个全局扩展属性头条目,如下所示:
tar cvf file.tar folder/* --format=pax --pax-option=globexthdr.gname:=MyGroup,globexthdr.uname:=MyUser
我用十六进制编辑器打开生成的文件,我可以确认开头有一个 'g' 条目。