我在这里有一个 POSIX tar 存档调用Debian9.ova
。
有趣的是,tar
在 MacOS High Sierra 中列出它,显示:
$ tar -tvf Debian9.ova
-rw-r--r-- 0 someone someone 5344 26 Feb 13:57 Debian9.ovf
-rw-r--r-- 0 someone someone 179 26 Feb 13:57 Debian9.mf
-rw-r--r-- 0 someone someone 2113245184 26 Feb 13:59 Debian9-disk1.vmdk
现在有趣的一点是,我没有someone
用户和组。
$ id someone
id: someone: no such user
用 列出它--numeric-owner
,它显示为uid
64 和gid
64,这显然不存在于我的系统中。
$ tar -tvf Debian9.ova --numeric-owner
-rw-r--r-- 0 64 64 5344 26 Feb 13:57 Debian9.ovf
-rw-r--r-- 0 64 64 179 26 Feb 13:57 Debian9.mf
-rw-r--r-- 0 64 64 2113245184 26 Feb 13:59 Debian9-disk1.vmdk
列出系统中的用户没有找到somebody
用户:
dscl . list /Users | grep someone
那么someone
从哪里来?当它发现一个未知的和时,它是一个tar
“特征”吗?uid
gid
PS。在debian中只是为了比较:
$ tar -tvf a.tar
-rw-r--r-- 64/64 3212 2018-02-27 02:01 dead.letter
$ bsdtar -tvf a.tar
-rw-r--r-- 0 64 64 3212 Feb 27 02:01 dead.letter
在标准格式
tar
存档中,每个文件的标题信息都包含符号用户和组名称以及数字用户和组 ID 的字段。如您所见,
tar
可以列出一组字段或另一组字段。使用符合标准的
pax
实用程序应该能够完全列出这些字段:但是,我相信
pax
目前不存在符合标准的实用程序。进一步阅读
pax
. 单一的 Unix 规范。IEEE 1003.1-2008:2016。tar
. § 5. FreeBSD 文件格式手册。