2009-07-20 12:40:03 +0000 2009-07-20 12:40:03 +0000
101
101

Como remover uma ligação simbólica a um directório?

Fiz uma ligação simbólica com o seguinte comando:

ln -s ../test5

Quero removê-lo agora mas o 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 o meu vínculo simbólico? (Ubuntu 8.10, bash)

Respostas (6)

122
122
122
2009-07-20 12:51:01 +0000

Remover a barra de arrasto:

Com rapidez:

& > $ rm test5

Sem prontidão:

& > $ rm -f test5

21
21
21
2009-07-20 12:54:12 +0000

Experimente rm test5 (sem a barra de treino).

A barra indica que ‘test5’ é um teste desastroso, enquanto que na realidade é um ficheiro ligação a um directório.

14
14
14
2009-07-20 13:06:36 +0000

Pode executar a remoção da barra deslizante:

$ rm test5

Isto removerá o ficheiro (ou seja, o link simbólico).

Em alternativa, poderá utilizar a ligação sem ligação:

$ unlink test5

Mais uma vez, deve omitir a barra de deslocamento, uma vez que está a tentar desvincular o symlink e não o directório.

0
0
0
2019-05-02 03:05:12 +0000

O problema no OP é o / de fuga, portanto test5/ lança um erro mas test5 funciona.

prefiro usar unlink em vez de rm porque a minha intenção é mais clara e não há hipótese de remover erroneamente o directório real em vez da ligação. Certificar-me de que não há nenhum / após o nome do directório, por exemplo

unlink test5
0
0
0
2018-02-14 23:23:37 +0000

Por vezes, se utilizar o autocompletar para nomear a ligação que pretende eliminar, pode não ver uma barra móvel, mas está “metade lá” e essa barra invisível ainda dá o erro de eliminação ao tentar remover essa ligação.

Então, nesse caso, digite caracter por caracter a ligação a ser apagada como “test5”, como por exemplo rm test5.

-1
-1
-1
2009-07-20 12:42:27 +0000

Sinto-me tonto por perguntar, mas já tentou rm -r? Uma vez que é uma ligação simbólica, não deve apagar o alvo.

Editar: Acabou de o experimentar, está correcto

Editar 2: rmdir diz na sua primeira linha da página de homem que apaga directórios vazios. Eu pensaria que por ser uma ligação, tinha o bit da directoria verificado nas suas propriedades de ficheiro, mas porque rmdir não suspeita que sendo o caso, cospe erros. Basta usar rm -r