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.

James
fuente

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.

Rinzwind
fuente
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 .

hakunami
fuente
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
Metales Marata
fuente
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.

chesedo
fuente
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.

Randomhero
fuente
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
Sudipta Basak
fuente