创建以下目录:
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