当我有一个文件夹的符号链接,然后使用选项再次尝试时,-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
下我都认为没有必要,除非您想在链接指向的目录中创建具有相同名称的链接。