在由bash创build的tar内部sorting文件

任何想法如何以特定的顺序来压缩文件。 我知道这听起来很奇怪,但是听我说。 OVA文件本质上是一个tar文件,但是具有特定的顺序。 Tar通常用于创build文件,但是为了使OVA能够像VMware一样被HyperVisors识别,OVA中的文件必须以特定的方式进行sorting。 .ovf文件必须是OVA中的第一个,而其他文件必须按照他们在.ovf中列出的顺序出现

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

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

这是正确的顺序。 当我尝试用tar创build一个ova的时候,但是顺序是错误的。 这是我如何做的。 这其实是非常基本的

 tar -cvf VM.ova * 

我只是深入到包含所有需要添加到OVA的内容并运行tar命令的文件夹。 请帮我正确地订购这些文件。 如果我们不能解决这个问题,虚拟机将无法使用任何HyperVisor。 谢谢!

*更新*

目前tar默认的命令是:vmdk,iso,mf,ovf

问题是你只是使用glob, *来列出这些文件。 在tar看到之前,气泡立即膨胀,焦油真正看到的是:

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

因为在正常*情况下,globs在C语言整理语言环境中按照词法扩展。 如果订单很重要,您可以手动列出这些文件:

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

或使用大括号扩展来保存一些输入

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

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