对从bash创建的tar中的文件进行排序



了解如何按特定顺序对文件进行标记。我知道一开始听起来很奇怪,但请听我说完。OVA文件本质上是一个tar文件,但具有特定的顺序。Tar通常用于创建文件,但为了让OVA被VMware等HyperVisor识别,OVA中的文件必须以非常特定的方式排序。.off文件必须位于OVA中的第一个,其他文件必须按照它们在.off 中列出的顺序出现

这里有一个快速的树来帮助解释:

VM.ova--
|
|--VM.ovf
|--VM.mf
|--VM.vmdk
|--VM.iso

这是正确的顺序。当我尝试用tar创建ova时,它是有效的,但顺序是错误的。这是我做这件事的方法。它实际上是非常基本的。

tar -cvf VM.ova *

我只是深入到包含需要添加到OVA中的所有内容的文件夹中,然后运行tar命令。请帮我正确订购这些文件。如果我们不能弄清楚这一点,虚拟机将永远无法与任何HyperVisor一起工作。非常感谢。

*更新*

目前,tar默认执行的顺序是:vmdk、iso、mf、ovf-

问题是您只是使用glob*来列出文件。球体在tar看到之前立即膨胀,所以tar真正看到的是:

tar -cvf VM.ova VM.iso VM.mf VM.ovf VM.vmdk

因为在正常情况下,globs在C排序规则区域中进行词汇扩展。如果订单很重要,您可以手动列出文件:

tar -cvf VM.ova VM.ovf VM.mf VM.vmdk VM.iso

或者使用大括号展开来保存一些键入

tar -cvf VM.ova VM.{ovf,mf,vmdk,iso}

*如果你把LC_*变量搞砸了,glob可能会以不同的顺序扩展,但我在这里做了一些假设。

相关内容

  • 没有找到相关文章

最新更新