it-swarm.dev

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

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)

100
Peter Smit

Retire la barra inclinada al final:

Con aviso:

$ rm test5

Sin aviso:

$ rm -f test5

120
Swanand

Prueba rm test5
(sin la barra de entrenamiento).

La barra indica que 'test5' es un anuncio directo mientras que en realidad es un archivo que enlaza a un directorio.

19
pelms

Puede ejecutar eliminando la barra inclinada al final:

$ rm test5

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

Alternativamente, puede utilizar desvincular

$ unlink test5

De nuevo, debe omitir la barra diagonal final, ya que está intentando desvincular el enlace simbólico, no el directorio.

12
Callum

El problema en el OP es el / final, así que test5/ lanza un error pero test5 funciona.

Prefiero usar unlink en lugar de rm, ya 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 un / final después del nombre del directorio, por ejemplo:

unlink test5
0
isapir

A veces, si usa la función autocompletar para nombrar el enlace que desea eliminar, es posible que no vea una barra diagonal final, pero está "a la mitad" y esa barra invisible aún genera 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", por ejemplo. rm test5.

0
user872812