Como remover um link simbólico para um diretório?

91

Eu fiz um link simbólico com o seguinte comando:

ln -s ../test5

Eu quero removê-lo agora, mas meu rm falha:

$ 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/

Como posso remover meu link simbólico? (Ubuntu 8.10, bash)

    
por Peter Smit 20.07.2009 / 14:40

5 respostas

116

Remover a barra final:

Com prompt:

$ rm test5

Sem aviso:

$ rm -f test5

    
por 20.07.2009 / 14:51
18

Tente rm test5
(sem a barra de treinamento).

A barra indica que 'test5' é um diretório, enquanto na verdade é um arquivo vinculando a um diretório.

    
por 20.07.2009 / 14:54
11

Você pode executar a remoção da barra final:

$ rm test5

Isso removerá o arquivo (ou seja, o link simbólico).

Alternativamente, você pode usar o unlink:

$ unlink test5

Novamente, você deve omitir a barra final, já que está tentando desvincular o link simbólico e não o diretório.

    
por 20.07.2009 / 15:06
0

Às vezes, se você usar o preenchimento automático para nomear o link que deseja excluir, talvez não veja uma barra à direita, mas está na metade e a barra invisível ainda dá o erro de exclusão ao tentar remover esse link.

Então, nesse caso, digite caractere por caractere no link a ser excluído como "test5" como por exemplo. rm test5 .

    
por 15.02.2018 / 00:23
-2

Eu me sinto bobo perguntando, mas você já tentou rm -r ? Como é um link simbólico, ele não deve excluir o alvo.

Editar: tentei, está correto

Edite 2: rmdir diz que em sua primeira linha da página man ele exclui diretórios vazios. Eu acho que porque é um link que o bit de diretório verificou em suas propriedades de arquivo, mas porque o rmdir não suspeita que seja o caso, ele cospe erros. Apenas use rm -r

    
por 20.07.2009 / 14:42