指向现有符号链接的符号链接会在当前目录中创建另一个符号链接

指向现有符号链接的符号链接会在当前目录中创建另一个符号链接

当我有一个文件夹的符号链接,然后使用选项再次尝试时,-sf我最终在原始源文件夹内得到了另一个指向其自身的符号链接。为什么会发生这种情况?我如何确保不会创建重复的符号链接?

➜  foo pwd
/home/ubuntu/foo
➜  foo ln -sf ~/foo/bar ~/foo/baz
➜  foo tree
.
├── bar
│   └── test.sh
└── baz -> /home/ubuntu/foo/bar

2 directories, 1 file
➜  foo ln -sf ~/foo/bar ~/foo/baz
➜  foo tree
.
├── bar
│   ├── bar -> /home/ubuntu/foo/bar
│   └── test.sh
└── baz -> /home/ubuntu/foo/bar

3 directories, 1 file

发行版:Ubuntu 14.04.5 LTS(GNU/Linux 3.13.0-106-通用 x86_64
:zsh 与 Oh my zsh 插件

答案1

我做了更多的谷歌搜索,它指向我使用-n参数,如这篇博文

相关手册页条目:

-n, --no-dereference
      treat LINK_NAME as a normal file if it is a symbolic link to a directory

其他社区的相关答案有更好的解释:

https://superuser.com/a/1061057/373342
https://superuser.com/a/645847/373342

答案2

您需要的实际答案是,-f如果您不想实际覆盖已经存在的内容,请不要使用。

如果没有该参数,您实际上会收到一条消息告诉您:

ln: failed to create symbolic link 'your/link': File exists

在任何情况-n下我都认为没有必要,除非您想在链接指向的目录中创建具有相同名称的链接。

相关内容