创建指向父目录中可执行文件的链接(..)

创建指向父目录中可执行文件的链接(..)

创建以下目录:

parent/child

导航到子项并创建一个名为的文件child(在我的情况下这是一个可执行文件,不确定是否有区别)。

我需要在父级中创建两个“链接到可执行文件”链接。我曾假设这会起作用:

ln -sf ./child ../child1
ln -sf ./child ../child2

但这会在父目录中创建一个“文件夹链接”(./child)。

如果我将其改为:

ln -sf -t.. ./child child1
ln -sf -t.. ./child child2

我收到一个错误,“ln:'../child':无法覆盖目录”。

如果我从父目录执行此操作(我无法执行此操作,这是 Makefile 配方的一部分):

ln -sf ./child/child ./child1
ln -sf ./child/child ./child2

有用。

请注意,我无法更改任何目录或文件的名称。

当当前目录是子目录时,如何创建链接?

答案1

这是因为第一个参数 TARGET 是相对的到链接的位置。换句话说,您正在创建名为父母/孩子1父母/孩子2两者都链接到。/孩子从这些链接的角度来看,。/孩子是目录。您需要链接到./儿童/儿童。或者更好的是,创建一个绝对链接:

ln -sf /full/path/to/parent/child/child ../child1
ln -sf /full/path/to/parent/child/child ../child2

相关内容