Я хочу изменить пункт назначения существующей символической ссылки, не удаляя ссылку или старый пункт назначения.
Ранее я создал символическую ссылку на каталог, например:
$ 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
опция является немного сложной. Я полагаю, что Ваша команда, возможно, создала ссылку на jdk1.7.0_07
в каталоге jdk1.7.0_04
, по ссылке oracle-jdk-7
вместо того, чтобы заменять ссылку. Если так, необходимо удалить ссылку для предотвращения беспорядка.