擦除文件后保持硬链接连接

时间:2014-10-17 10:46:15

标签: linux bash hardlink

我尝试实现一些我想象的非常简单,但最终比预期的更难。

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

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

  • 符号链接。它有效,但如果我执行jar文件,则上下文为source/,而不是我想要的target/

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

感谢您的帮助!

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

2 个答案:

答案 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 "$@"