Неможливо змінити призначення символічного посилання


21

Я хочу змінити призначення існуючого символічного посилання, не видаляючи посилання або старе призначення.

Я раніше створив символічне посилання на такий каталог:

$ 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/

Будь-яка допомога?


Можливо, це невелика деталь, але схоже, що це фактична команда, яку ви виконували sudo ln -s jdk1.7.0_04/ oracle-jdk-7. Зверніть увагу на косу рису після 04.
wjandrea

Відповіді:


31

Щоб створити символічне посилання на каталог , використовуйте опцію 'n':

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY - назва цілі посилання;
  • LINK_NAME - назва посилання.
  • fВаріант означає замінити існуюче посилання (тобто видалити його першим).

nВаріант трохи складніше. Я вважаю, що ваша команда, можливо, створила посилання на jdk1.7.0_07всередині каталогу jdk1.7.0_04через посилання, oracle-jdk-7а не замінивши його. Якщо так, вам слід видалити посилання, щоб уникнути плутанини.


Ви також можете скористатися опцією T, тобтоln -sfT TARGET LINK_NAME
wjandrea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.