相同的移动命令如何根据上下文表现不同?

How can the same move command behave differently depending on the context?

这真的应该是微不足道的,我有一个编译应用程序然后将其捆绑到 dmg 中的脚本。

步骤是:

  1. make
  2. mv app.app/ installer/artifacts/
  3. createDMG

问题是 运行 在 CI 系统中,它失败了,因为它在工件文件夹中找不到 app.app。事实上,如果我查看此文件夹中的内容,我只能看到一个 Content 文件夹,它应该是 app.app 的子文件夹。现在我不认为移动 app.pp 文件夹的命令是错误的,因为当我 运行 所有这 3 个步骤时它工作得很好...

我现在有点困惑,2 个移动命令怎么会有 2 个不同的行为?

如果文件夹 installer/artifacts/ 不存在,移动会将 app.app/ 重命名为 installer/artifacts/

您可以改为执行以下操作:

make
mkdir -p installer/artifacts/
mv app.app installer/artifacts/
createDMG