如何生成具有全局扩展属性 ('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' 类型。

我做错了什么?

环境:

更多信息

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' 条目。