如何创建具有不同名称的文件夹符号链接?

如何创建具有不同名称的文件夹符号链接?

我想创建一个符号链接

~/.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 目录,因为您的目标是现有目录,所以链接是在其中创建的。

相关内容