我尝试实现一些我想象的非常简单,但最终比预期的更难。
我有一个文件夹:source/
。我有第二个:target/
。我在第一个文件夹中创建了一个文件test.jar
。然后,我希望此文件出现并在我的第二个文件夹中可执行。我看到3个选项:
手动复制/粘贴我的文件。它有效,但......每次更新文件时我都不想这样做。
符号链接。它有效,但如果我执行jar文件,则上下文为source/
,而不是我想要的target/
。
硬链接。这正是我所需要的,但问题是test.jar
未被修改,而是生成。这意味着在删除source/test.jar
后,target.test.jar
仍引用旧文件...是否可以强制2个文件始终具有相同的值?
感谢您的帮助!
编辑:目前,我通过添加一行来将源文件中的文件从源/复制到目标/内部解决了这个问题,我将在生成jar之后执行。我认为我想做的事实际上是不可能的。它需要一种新的链接,它链接2个文件的内容给定它们的路径名而不是它们的inode ...
答案 0 :(得分:0)
不要创建文件的软链接。创建整个文件夹的软链接。
像
这样的东西ln -s {whatever path}/source/ {whatever path}/target
然后文件夹target /是第一个文件夹的文件夹链接,上下文应该是相同的。
您还可以尝试使用git(本地)和checkout source / to folder target。
答案 1 :(得分:0)
您可以尝试在test.jar
目录中创建名为target
的可执行shell脚本,并使其调用path/source/test.jar
传递转发所有参数。类似的东西:
#!/bin/bash
path/source/test.jar "$@"