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

Ter*_*ver 1 linux symbolic-link

创建以下目录:

parent/child
Run Code Online (Sandbox Code Playgroud)

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

我需要在父级中创建两个“可执行链接”链接。我原以为这会奏效:

ln -sf ./child ../child1
ln -sf ./child ../child2
Run Code Online (Sandbox Code Playgroud)

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

如果我将其更改为:

ln -sf -t.. ./child child1
ln -sf -t.. ./child child2
Run Code Online (Sandbox Code Playgroud)

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

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

ln -sf ./child/child ./child1
ln -sf ./child/child ./child2
Run Code Online (Sandbox Code Playgroud)

有用。

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

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

Fli*_*mzy 5

这是因为第一个参数,TARGET,是相对于该链接的位置。换句话说,您正在创建名为parent/child1parent/ child2 的链接,它们都链接到./child。从这些链接的角度来看,./child是目录。您需要链接到./child/child。或者更好的是,创建一个绝对链接:

ln -sf /full/path/to/parent/child/child ../child1
ln -sf /full/path/to/parent/child/child ../child2
Run Code Online (Sandbox Code Playgroud)