0

我试图实现一些我想象中很简单的事情,但最终比预期的要难。

我有一个文件夹:source/。我有第二个:target/。我在我的第一个文件夹中创建了test.jar一个文件。然后,我希望这个文件出现在我的第二个文件夹中并且可以执行。我看到 3 个选项:

  • 手动复制/粘贴我的文件。它有效,但是......我不想每次更新文件时都这样做。

  • 符号链接。它可以工作,但是如果我执行 jar 文件,上下文source/不是target/我想要的。

  • 硬链接。这正是我所需要的,但问题是它test.jar没有被修改,而是生成。这意味着擦除后source/test.jartarget.test.jar仍然引用旧文件...是否可以强制这两个文件始终具有相同的值?

谢谢你的帮助 !

编辑:现在,我通过添加一行将我的文件从源/复制到目标/在一个脚本中解决了这个问题,无论如何我都会在生成 jar 后执行该脚本。我认为我想做的事情实际上是不可能的。它需要一种新的链接,它链接给定路径名而不是 inode 的 2 个文件的内容...

4

2 回答 2

0

test.jar您可以尝试在目录中创建一个名为的可执行 shell 脚本,target并使其调用path/source/test.jar传递的所有参数。就像是:

#!/bin/bash
path/source/test.jar "$@"
于 2014-10-22T21:30:52.343 回答
0

不要创建文件的软链接。创建整个文件夹的软链接。

就像是

ln -s {whatever path}/source/ {whatever path}/target

然后文件夹 target/ 是第一个文件夹的文件夹链接,并且上下文应该相同。

您也可以尝试使用 git(本地)和 checkout source/ 到文件夹目标。

于 2014-10-17T10:56:26.763 回答