¿Cómo eliminar un enlace simbólico a un directorio?


100

Hice un enlace simbólico con el siguiente comando:

ln -s ../test5

Quiero eliminarlo ahora pero mi rm falla:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

¿Cómo puedo eliminar mi enlace simbólico? (Ubuntu 8.10, bash)


44
CONSEJO: rm -r link/elimina el contenido en el objetivo
Gayan Weerakutti

Respuestas:



20

Prueba rm test5
(sin la barra de entrenamiento).

La barra indica que 'test5' es un directorio mientras que en realidad es un archivo que se vincula a un directorio.


14

Puede ejecutar la eliminación de la barra diagonal final:

$ rm test5

Esto eliminará el archivo (es decir, el enlace simbólico).

Alternativamente, puede usar desvincular:

$ unlink test5

Una vez más, debe omitir la barra diagonal final ya que está intentando desvincular el enlace simbólico, no el directorio.


0

A veces, si usa la función de autocompletar para nombrar el enlace que desea eliminar, es posible que no vea una barra inclinada final, pero está 'a medio camino' y esa barra invisible aún da el error de eliminación al intentar eliminar ese enlace.

Entonces, en ese caso, escriba carácter por carácter el enlace que se eliminará como "test5" como, por ejemplo. rm test5.


1
Nunca he oído hablar de tala invisible. ¿Qué caparazón hace esto?
Kamil Maciorowski

¿Creo que es posiblemente una referencia al personaje que está oculto por linewrap + cursor?
bertieb

0

El problema en el OP es el seguimiento /, por lo que test5/arroja un error pero test5funciona.

Prefiero usar en unlinklugar de hacerlo, rmya que mi intención es más clara y no hay posibilidad de eliminar por error el directorio real en lugar del enlace. Asegúrese de que no haya ningún rastro /después del nombre del directorio, por ejemplo:

unlink test5

-1

Me siento tonto preguntando, pero ¿lo has intentado rm -r? Como es un enlace simbólico, no debería eliminar el objetivo.

Editar: solo lo intenté, es correcto

Edición 2: rmdir dice que en su primera línea de la página man elimina los directorios vacíos. Creo que, debido a que es un enlace, tenía el bit de directorio verificado en sus propiedades de archivo, pero porque rmdir no sospecha que ese sea el caso, escupe errores. Solo usa rm -r


2
Esto me pedirá que elimine los archivos del directorio, eso no es lo que quiero, quiero eliminar solo el enlace
Peter Smit el

La pregunta fue porque interactiva se definió en mi .profile. Se agregó la respuesta a rm -r. Aún no funciona.
Peter Smit el

Dejaste el final '/' por eso falló
bobby
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.