Eu fiz um link simbólico com o seguinte comando:
ln -s ../test5
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)
linux
bash
symbolic-link
Peter Smit
fonte
fonte
rm -r link/
exclui o conteúdo do destinoRespostas:
Remova a barra à direita:
Com prompt:
Sem aviso:
fonte
permission denied
.test5/
está incorreto.Tente
rm test5
(sem a barra de treinamento).
A barra indica que 'test5' é um direactory enquanto que na verdade é um arquivo que liga para um diretório.
fonte
Você pode executar a remoção da barra à direita:
Isso removerá o arquivo (ou seja, o link simbólico).
Como alternativa, você pode usar o link:
Novamente, você deve omitir a barra final, pois está tentando desvincular o link simbólico e não o diretório.
fonte
Às vezes, se você usar o preenchimento automático para nomear o link que deseja excluir, poderá não ver uma barra final, mas está "meio lá" e essa barra invisível ainda gera o erro de exclusão ao tentar remover esse link.
Portanto, nesse caso, digite caractere por caractere no link a ser excluído como "test5", como por exemplo.
rm test5
.fonte
O problema no OP é o final
/
, entãotest5/
gera um erro, mastest5
funciona.Prefiro usar
unlink
do querm
como minha intenção é mais clara e não há chance de remover por engano o diretório real em vez do link. Certifique-se de que não haja nenhum rastro/
após o nome do diretório, por exemplo:fonte
Eu me sinto tola perguntando, mas você já tentou
rm -r
? Por ser um link simbólico, não deve excluir o alvo.Edit: Apenas tentei, está correto
Edit 2: rmdir diz que em sua primeira linha da página de manual ele exclui diretórios vazios. Eu pensaria que, por ser um link, o bit do diretório foi verificado nas propriedades do arquivo, mas porque o rmdir não suspeita que seja o caso, ele gera erros. Basta usar rm -r
fonte