¿Cómo eliminar o reemplazar un enlace simbólico ya creado?


53

Estoy trabajando en mi proyecto usando el simulador de red2. Lo instalé y todo está bien. Intenté crear un enlace simbólico entre esta instalación y /usr/bin, para poder invocar el software ejecutándome nsdesde la línea de comandos. A saber, corrí:

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

que generó el siguiente resultado:

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


¿Cómo puedo eliminar el enlace simbólico ya creado o puedo reemplazarlo con otros comandos?


Estaba tratando de hacerlo sudo ln -s destination sourcey, por supuesto, me molestó. Gracias por la respuesta.
aviggiano

Respuestas:


35
sudo rm -r /usr/bin/ns

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

1
lo anterior falla si ns es una carpeta, en cuyo caso use rm -rf (interruptores de fuerza recursiva) - en cuyo caso también podría usar los interruptores -sf para ln.
finley

@finley Sí, tienes razón. Incase ns es una carpeta, no se puede eliminar. Ahora me parece ambiguo que, ¿podemos crear un enlace simbólico a una carpeta?
Vinay

1
Sí, podemos crear un enlace simbólico a una carpeta. Si se trata de una carpeta, puede hacer: sudo rm -r / usr / bin / ns
Pawełkowy el

@Pawel Creé un enlace simbólico a la carpeta con éxito. Incluso puedo eliminar como dijiste anteriormente. Pero, cuando escribo el nombre de fold [enlace simbólico creado para una carpeta] en el terminal, aparece un error. Lo que realmente pensé fue crear un enlace simbólico a una carpeta y simplemente escribir el terminal del nombre del enlace lo abriría en nautilus. No estoy seguro de si es posible o no ...?
Vinay

1
@Vinaychalluru si desea abrir esa carpeta, intente escribir: cd fold: se abrirá en una terminal. Si desea abrirlo en nautilus, escriba: nautilus fold
Pawełkowy

63

lntiene un -finterruptor que "obliga" a crear un enlace simbólico ya sea que exista o no.

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

Esta debería ser la respuesta aceptada.
Rony Varghese

28

Lo intenté ln -sfmientras lo reemplazaba, pero no funcionó para mí, pero hice lo ln -sfn directory link_name que rootfuncionó.


Sin -nmí estaba teniendo un problema de bucle infinito. ¡Gracias!
Christopher Markieta

3

Para agregar a todas las respuestas anteriores, un enlace simbólico se puede tratar como un archivo normal en muchos casos (el enlace, no el objetivo).

rmen un enlace simbólico lo eliminará. Si el enlace es propiedad de root, deberá sudo.

Debería poder, rm /usr/bin/nso más bien sudo rm /usr/bin/ns, no olvidar la propiedad.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.