更改符号链接不适用于目录

ysa*_*sap 2 10.04 command-line symbolic-link

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

$ mkdir dir1
$ mkdir dir2
$ ln -s  dir1 lnk
$ ln -sf dir2 lnk
$ ll
......... lnk -> dir1
$
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*dge 5

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

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

-T, --no-target-directory
       treat LINK_NAME as a normal file
Run Code Online (Sandbox Code Playgroud)

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