Cómo eliminar el enlace simbólico


139

Estaba tratando de crear este enlace simbólico:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

pero accidentalmente escribí:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Así que ahora quiero corregirlo pero dice que el enlace simbólico ya existe.

Respuestas:


165

Puede usar rmpara eliminar el enlace simbólico.

Ejemplo:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Luego ...

 rm tmo2

eliminará el enlace simbólico.


1
Permiso denegado. Esto es lo que escribí primero: sudo ln -s / usr / share / php, yad, en / var / www / phpmyadmin
— James

66
permiso denegado: ¿Sabes que necesitas sudo si quieres usarlo en una situación en la que no eres el propietario del archivo? Eso va para 'rm' también.
— Rinzwind

2
lo hice rm / usr / bin / python y

2
@RaheelKhan no lo hiciste -no- Eliminaste un SYMLINK. Sin embargo, Python se basa en este enlace simbólico. Si recrea ese enlace simbólico, Python volverá.
— Rinzwind

1
Intento este comando, pero parece que mi archivo se ha eliminado, no quiero eliminar mi archivo
— saeed masoomi

24

Puedes probar el unlinkcomando también.
unlinkes un alias de rm. por rm <symlink>lo tanto funcionará igual queunlink <symlink>

Aquí está el enlace de referencia .


99
unlinkno tiene nada que ver con los enlaces simbólicos en particular. Ver serverfault.com/a/38817/64085
— Matthew Read

@kushvarma pero funciona. intentaste eso?
— hakunami

1
la respuesta puede ser correcta, pero confundirá a los novatos
— mit

" unlinkes un alias de rm" [Cita requerida]
— mwfearnley

12

Supongamos que intentas hacer:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

pero accidentalmente lo hizo:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Para corregirlo, simplemente navegue a la carpeta donde está el enlace y desvincule

cd /var/www/phpmyadmin/  
~:# unlink somethingelse

8

Utilizará lo siguiente para eliminar el enlace simbólico

sudo rm path/to/the/link

Explicación

  • rmes el comando de terminal para eliminar un archivo. Vea rm --helppara más opciones que puede tomar.
  • sudose usa porque el enlace simbólico se creó con sudo. Por lo tanto, el archivo pertenece a la raíz y su usuario normal no podrá editarlo / eliminarlo ya que tiene menos 'poder' que la raíz.
  • path/to/the/linkse /usr/share/php,yad,inbasará en tu comentario.

Extra

También vea esta publicación y mi comentario a la primera respuesta para acceder a phpmyadmin cuando obtenga un error no encontrado después de la instalación.


Tu comentario no es genérico. Utilice siempre un comando genérico para mostrar cómo eliminar el enlace simbólico
— kushvarma

significa genérico, debería ser válido para todo, como su comando es específico para / usr / share / php, yad, in, pero debería ser rm <symlink>
— kushvarma

@kushvarma, gracias. Hice la respuesta más genérica: originalmente era específica porque el OP parecía tener un problema al eliminar el archivo
— chesedo

1

Perdón por publicar en Necro, pero encontré esta pregunta cuando estaba buscando una respuesta a este problema.

Una pequeña advertencia que encontré fue que estaba intentando ejecutar rmy unlinken un enlace simbólico y recibía un error de que era un directorio.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Para eliminar el enlace simbólico, lo usé unlink folder_namepero fallaba si había un seguimiento, /por ejemplo, unlink folder_name/ya que cree que es un directorio, no el archivo que desea eliminar.


0

Estuve atemorizado aquí porque tuve que eliminar ay dpkg-divertel nuevo paquete no se instalará hasta que se haya eliminado.

Entonces, si has hecho algo como esto:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Necesitas eliminarlo con algo como esto:

sudo dpkg-divert --remove /usr/bin/gcc.real
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.