更改符号链接对目录不起作用

更改符号链接对目录不起作用

为了更改符号链接,可以使用 -fs 选项来消除先取消链接或删除旧链接的需要。但是,尝试在目录上执行此操作似乎不起作用:

$ mkdir dir1
$ mkdir dir2
$ ln -s  dir1 lnk
$ ln -sf dir2 lnk
$ ll
......... lnk -> dir1
$

为什么这样?是否有其他选项可以像处理文件一样对目录执行此操作?

答案1

默认情况下,如果您将目录(或目录的符号链接)作为ln命令的第二个参数传递,它将在该目录内创建一个与第一个参数同名的链接。因此,使用您发出的命令集,您应该会找到一个名为dir2inside的符号链接dir1

您可以使用以下选项更改此行为-T

-T, --no-target-directory
       treat LINK_NAME as a normal file

如果您在第二次ln调用时传递此选项,那么它应该覆盖lnk符号链接,而不是在第一个目录内创建新的符号链接。

相关内容