linux - symlinks - Remover um link simbólico para um diretório




remove directory link (6)

Eu tive esse problema com MinGW (na verdade Git Bash) em execução em um servidor Windows. Nenhuma das sugestões acima pareceu funcionar. No final, fez uma cópia do diretório no caso, em seguida, excluiu o link do Windows Explorer, em seguida, excluiu o item na Lixeira. Ele fez barulhos como se estivesse apagando os arquivos, mas não o fez. Faça um backup embora!

Eu tenho um link simbólico para um diretório importante. Eu quero me livrar desse symlink, mantendo o diretório por trás dele.

Eu tentei rm e voltar rm: cannot remove 'foo' .
Eu tentei rmdir e voltou rmdir: failed to remove 'foo': Directory not empty
Eu então progredi através de rm -f , rm -rf e sudo rm -rf

Então eu fui encontrar minhas cópias de segurança.

Existe uma maneira de se livrar do symlink sem jogar fora o bebê com a água do banho?


No CentOS, apenas execute rm linkname e ele irá pedir para "remover link simbólico?". Digite Y e Enter , o link desaparecerá e o diretório estará seguro.


Supondo que seja um link simbólico,

$ rm -d symlink

Ele deve descobrir isso, mas como não podemos ativar o código latente que foi destinado a outro caso que não existe mais, mas acontece de fazer a coisa certa aqui.


Supondo que sua configuração é algo como: ln -s /mnt/bar ~/foo , então você deve ser capaz de fazer um rm foo sem nenhum problema. Se você não puder, certifique-se de ser o proprietário do foo e ter permissão para gravar / executar o arquivo. Remover foo não vai tocar na bar , a menos que você faça isso recursivamente.



use o comando "unlink" e certifique-se de não ter o / no final

$ unlink mySymLink

unlink () exclui um nome do sistema de arquivos. Se esse nome for o último link para um arquivo e nenhum processo tiver o arquivo aberto, o arquivo será excluído e o espaço que ele estava usando será disponibilizado para reutilização. Se o nome foi o último link para um arquivo, mas qualquer processo ainda tiver o arquivo aberto, o arquivo permanecerá em existência até que o último descritor de arquivo referente a ele seja fechado.

Eu acho que isso pode ser problemático se eu estiver lendo corretamente.

Se o nome referir-se a um link simbólico, o link será removido.

Se o nome referir-se a um soquete, fifo ou device, o nome dele será removido, mas os processos que tiverem o objeto aberto poderão continuar a usá-lo.

https://linux.die.net/man/2/unlink





symlink