我想创建一个符号链接
~/.pm2/logs -> /opt/myapp/log
当我跑步时
ln -sFf /opt/myapp/log ~/.pm2/logs
我得到一个符号链接
~/.pm2/logs/log -> /opt/myapp/log
这不是我想要的。
如果可能的话,我更喜欢 POSIX 兼容的解决方案。
答案1
你已经有一个目录在~/.pm2/logs
。由于该目录存在,因此符号链接将放置在其中。
如果您希望这~/.pm2/logs
是一个符号链接而不是目录,那么您必须首先删除或重命名该现有目录。
答案2
正如其他答案所说,那里已经有一个目录。
为了避免这种情况并收到错误消息,请使用该-T
选项,不幸的是我不认为这是 Posix(它是 GNU)。
来自 Gnuln
手册(cp 和 mv 相同)。
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
请注意,没有 的形式 1-T
与形式 3 是不明确的(两者都有两个参数)。
在 Posix 中,您可以通过在目录名末尾添加 a 来强制实现这种非歧义性/
,如表格 3 所示,但我认为您无法以相反的方式做任何事情。这就是 Gnu 添加该-T
选项的原因。
答案3
首先删除 ~/.pm2/logs 目录,因为您的目标是现有目录,所以链接是在其中创建的。