Создана символическая ссылка на каталог

Я хотел / usr / bin / local для символической ссылки на /home/jonas/swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift , поэтому я ввел следующую команду :

sudo ln -s swift-5.3.3-RELEASE-ubuntu20.04 / usr / bin / swift / usr / bin / local

К сожалению, теперь / usr / bin / local символическая ссылка на swift, и ее содержимое исчезло, как показано здесь:

lrwxrwxrwx 1 root root 45 Mär 29 13:24 / usr / bin / local -> swift-5.3.3-RELEASE-ubuntu20.04 / usr / bin / swift

Есть ли способ вылечить это?

0
задан 29 March 2021 в 14:34

2 ответа

ln не будет создавать символическую ссылку с тем же именем, что и существующий каталог. В этом случае синтаксис будет оценен как

   ln [OPTION]... TARGET... DIRECTORY

Это означает: если / usr / bin / local - существующий каталог, ссылка будет названа как цель (цель - swift-5.3.3 -RELEASE-ubuntu20.04 / usr / bin / swift с именем swift ) будет создан в существующем каталоге.

Конечно, ваш / usr / bin / local не может быть заменен символической ссылкой с таким же именем, если она существует.

Таким образом, исходя из вашего отчета, мы можем с уверенностью предположить, что в вашей системе не было предыдущей папки / usr / bin / local . Обычно такой папки нет в стандартной системе Linux. Соответственно, ваша команда создала символическую ссылку / usr / bin / local в / user / bin , как вы сами видели.

0
ответ дан 23 April 2021 в 23:29

Если вы пытаетесь создать символическую ссылку на некоторую локальную версию Swift и поместить эту ссылку в / usr / local / bin , решение будет следующим:

ln -s swift-5.3.3-RELEASE-ubuntu20.04/usr/bin/swift /usr/local/bin/swift
0
ответ дан 23 April 2021 в 23:29

Другие вопросы по тегам:

Похожие вопросы: