linux 为什么ln -sf不覆盖现有的链接到目录[关闭]

0g0grzrc  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(197)

**已关闭。**此问题不符合Stack Overflow guidelines。它目前不接受回答。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
4年前关闭。
Improve this question
根据文档,命令ln -f删除现有的目标文件。这是否意味着,如果我创建一个符号链接,-f应该删除或覆盖任何现有的符号链接在目的地?
我有一个符号链接,比如L,指向DIR 1并输入ln -sf DIR2 L。但L仍然指向DIR 1。仅在rm L之后,此命令才创建指向DIR 2的链接。
使用指向文件的符号链接,它的行为符合预期。
链接到目录有什么问题?(Ubuntu 16.04.2 LTS和Windows WSL上的bash 4.3.48)

emeijp43

emeijp431#

跑步时:

ln -sf DIR2 L

这是在DIR1内部创建一个符号链接,因为符号链接L指向目录DIR1,而ln取消引用符号链接L,导致创建L/DIR2 -> DIR1
以下:

#rm -fr DIR1 DIR2 L
mkdir DIR1 DIR2
ln -v -s DIR1 L
ls -la L
ln -v -f -s DIR2 L
ls -la L

将输出:

'L' -> 'DIR1'
lrwxrwxrwx 1 runner runner 4 Oct 21 18:13 L -> DIR1
'L/DIR2' -> 'DIR2'
lrwxrwxrwx 1 runner runner 4 Oct 21 18:13 L -> DIR1

要处理此问题,请使用--no-dereference选项,如answer in this thread on superuser.com中所示。

相关问题