我试图实现一些我想象中很简单的事情,但最终比预期更难。
我有一个文件夹:source/
。我有第二个:target/
。我在第一个文件夹中创建了一个文件 test.jar
。然后,我希望该文件在我的第二个文件夹中出现并可执行。我看到 3 个选项:
手动复制/粘贴我的文件。它有效,但是......我不想每次更新文件时都这样做。
符号链接(symbolic link)。它有效,但如果我执行 jar 文件,上下文是
source/
而不是我想要的target/
。硬链接(hard link)。这正是我所需要的,但问题是
test.jar
没有被修改,而是生成了。这意味着删除source/test.jar
后,target.test.jar
仍然引用旧文件...是否可以强制这两个文件始终具有相同的值?
感谢您的帮助!
编辑:现在,我通过添加一行将我的文件从源/复制到目标/的脚本来解决这个问题,生成 jar 后无论如何我都会执行该脚本。我想我想做的事其实是不可能的。它需要一种新的链接方式,在给定路径名而不是 inode 的情况下链接 2 个文件的内容...
最佳答案
不要创建文件的软链接(soft link)。创建整个文件夹的软链接(soft link)。
类似
ln -s {whatever path}/source/ {whatever path}/target
然后文件夹 target/是第一个文件夹的文件夹链接,上下文应该相同。
您还可以尝试使用 git(本地)并将 source/ checkout 到文件夹目标。
关于linux - 删除文件后保持硬链接(hard link)连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26423355/