¿Cómo puedo romper un bucle de enlace simbólico?

7

Mientras intentaba compilar una biblioteca de objetos compartidos en C, accidentalmente creé dos enlaces simbólicos que apuntan entre sí. ¿Hay alguna forma de deshacerse de ellos sin dañar todo el directorio? Leí que la única forma de romper un enlace simbólico es eliminar el archivo al que apunta, pero estoy seguro de que debe haber otra forma. Gracias por la ayuda.

Evan Kroske
fuente
4
Luego borra el archivo po ... oh dios. ¿Cómo conseguiste esto? :PAG
Phoshi
2
Es fácil de hacer, y aún más fácil de arreglar. Los enlaces simbólicos apuntan a un nombre de archivo, y el nombre de archivo de destino ni siquiera tiene que existir. Y rm elimina el enlace simbólico, no el archivo al que apunta.
Justin Smith

Respuestas:

14

No es un problema eliminar enlaces simbólicos. No estoy seguro de por qué cree que necesita eliminar el archivo al que apunta el enlace.

Sólo elimínalos. Prueba esto:

ln -s thing1 thing2   # thing1 does not exist
ln -s thing2 thing1   # circular reference
rm thing1 thing2      # no problem
Mark Borgerding
fuente
5

No importa, puedo eliminar ambos enlaces simultáneamente con rm. ¿Por qué alguien dijo que tenía que borrar el archivo de destino ...

Evan Kroske
fuente
1
unlink es incluso mejor que rm para eliminar enlaces de forma segura.
ℝaphink
1
Podrías incluso haber eliminado uno de los enlaces y dejar el otro, si tuvieras alguna razón para hacerlo.
Justin Smith
3

Cuando elimina un enlace simbólico en Linux, el enlace se elimina y no el archivo de destino.

Mr. Shiny and New 安宇
fuente