Sey*_*mad 21 command-line symbolic-link
我想更改现有符号链接的目标,而不删除链接或旧目标。
我之前创建了一个指向目录的符号链接,如下所示:
$ 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/
Run Code Online (Sandbox Code Playgroud)
现在我想改变这个,链接到另一个目录:
$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7
Run Code Online (Sandbox Code Playgroud)
但它没有任何错误就无法工作:
$ 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/
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?
Mar*_*ied 31
要创建指向目录的符号链接,请使用“n”选项:
ln -sfn DESTINATION_DIRECTORY LINK_NAME
Run Code Online (Sandbox Code Playgroud)
DESTINATION_DIRECTORY 是链接目标的名称;LINK_NAME 是链接的名称。f选项表示替换现有链接(即先将其删除)。这个n选项有点复杂。我相信您的命令可能通过链接而不是替换链接创建了指向jdk1.7.0_07目录内部的链接。如果是这样,您应该删除链接以避免混淆。jdk1.7.0_04oracle-jdk-7