当前位置: 首页>>技术教程>>正文


无法更改符号链接的目标

,

问题描述

我想更改现有符号链接的目标,而不删除链接或旧目标。

我之前创建了一个指向如下目录的符号链接:

$ cd /usr/lib/jvm/

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07

$ sudo ln -s jdk1.7.0_04 oracle-jdk-7

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

现在我想改变它,链接到另一个目录:

$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7

但它没有任何错误就无法工作:

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:36  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

有什么帮助吗?

最佳办法

要创建指向目录的符号链接,请使用 ‘n’ 选项:

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY 是链接目标的名称;

  • LINK_NAME 是链接的名称。

  • f 选项表示替换现有链接(即先删除它)。

n 选项有点复杂。我相信您的命令可能通过链接 oracle-jdk-7 而不是替换链接在目录 jdk1.7.0_04 中创建了指向 jdk1.7.0_07 的链接。如果是这样,您应该删除链接以避免混淆。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13033.html,未经允许,请勿转载。