Symlink

如何創建具有不同名稱的文件夾符號連結?

  • April 12, 2019

我想創建一個符號連結

~/.pm2/logs -> /opt/myapp/log

當我跑

ln -sFf /opt/myapp/log ~/.pm2/logs

我得到一個符號連結

~/.pm2/logs/log -> /opt/myapp/log

這不是我想要的。

如果可能的話,我更喜歡與 POSIX 兼容的解決方案。

您已經. ~/.pm2/logs由於該目錄存在,因此將符號連結放在其中。

您是否希望這~/.pm2/logs是一個符號連結而不是目錄,那麼您必須首先刪除或重命名該現有目錄。

正如其他答案所說,那裡已經有一個目錄。

為避免這種情況並獲得錯誤消息,請使用該-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 中,您可以通過在表格 3 中將 a 放在目錄名稱的末尾來強制這種非歧義性/,但我認為您無法以相反的方式做任何事情。這就是 Gnu 添加該-T選項的原因。

引用自:https://unix.stackexchange.com/questions/512139