Как удалить или заменить уже созданную символическую ссылку?

47

Я работаю над своим проектом, используя сетевой симулятор2. Я установил его, и все в порядке. Я попытался создать символическую связь между этой установкой и /usr/bin , поэтому я мог бы вызвать программное обеспечение, запустив ns из командной строки. А именно, я побежал:

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

, который сгенерировал следующий вывод:

ln: creating symbolic link '/usr/bin/ns': File exists

Как удалить уже созданную символическую ссылку или заменить ее другими командами?

    
задан Vinay Challuru 15.11.2010 в 13:59
источник

4 ответа

30
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
    
ответ дан Paweł Karpiński 15.11.2010 в 14:02
источник
53

ln имеет переключатель -f , который «заставляет» создать символическую ссылку, независимо от того, существует она или нет.

sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
    
ответ дан finley 15.11.2010 в 14:24
26

Я попробовал ln -sf при замене, но для меня это не сработало, но работала ln -sfn directory link_name при работе root .

    
ответ дан user712092 25.10.2012 в 11:50
3

Чтобы добавить ко всем приведенным выше ответам, символическая ссылка во многих случаях может рассматриваться как обычный файл (ссылка, а не цель).

rm на символической ссылке удалит его. Если ссылка принадлежит root, вам нужно sudo.

Вы должны иметь возможность rm /usr/bin/ns или, скорее, sudo rm /usr/bin/ns не забывать о собственности.

    
ответ дан Dmitriy Likhten 15.11.2010 в 16:13