Questão Como posso deletar um link simbólico?


Eu criei um symlink usando mklink. Agora preciso alterá-lo, mas não consigo descobrir como excluí-lo para poder recriá-lo corretamente.


285


origem




Respostas:


Tenha muito cuidado. 

Se você tem um link simbólico que é um diretório (feito com mklink /d) usando então del excluirá todos os arquivos no diretório de destino (o diretório para o qual o link aponta), em vez de apenas o link.

SOLUÇÃO:  rmdir por outro lado, apenas excluirá o link do diretório, não o que o link apontar para.


492



Tendo feito isso acidentalmente (deletado o conteúdo completo da pasta de destino), isso é uma dica importante. - Simon Gillbee
Essa resposta não é totalmente precisa. Del exclui arquivos, não pastas. Portanto, você não usaria del para excluir o link. - AMissico
Mas não use rmdir no PowerShell. Envolvê-lo em cmd primeiro. Veja minha resposta abaixo ... - northben
Que tal se eu excluí-lo através do Windows Explorer ???? - Cheung
Há funcionários da Microsoft ir de novo, apenas tentando arruinar minha vida, carreira e sistema operacional Windows. - ThorSummoner


Para um link simbólico para um arquivo, use del. Para um link simbólico para um diretório feito com mklink /d, usar rmdir.


42



Aviso: "del" excluirá o arquivo e não apenas o link. - WoodenKitty
Aviso do @Tristan não está correto, esta resposta é correta. Testado no windows 7. - jiggunjer
No Windows 7 SP1 (64 bits), um link simbólico que aponta para um arquivo (por exemplo, criado usando o MKLINK) ou para um diretório (MKLINK / D) pode ser excluído no Windows Explorer, usando a opção comum de 'excluir' da GUI do Windows , sem excluindo o alvo. Até mesmo um JUNÇÃO (por exemplo, criado usando o comando MKLINK / J), se excluído no Explorer, não excluirá o diretório de destino nem seu conteúdo. Se não estiver vazio, o diretório de destino não pode ser excluído usando o comando DEL junção no prompt de comando. Testado hoje. - Ed999
No Windows Server 2012, isso removeu o conteúdo do diretório para o qual meu link simbólico foi apontado ... - C Bauer


Para remover links simbólicos de diretório criados com mklink /d é seguro excluir apenas o link simbólico no explorador.


42



1 para dizer às pessoas que é possível excluir o link simbólico através do Windows Explorer. - AMissico
Isso está correto. Eu faço isso o tempo todo. Apenas testei de novo agora. - ddelrio1986
Isso só funcionou para mim também. Eu deletei o link e não a pasta de origem que estava vinculada. talvez essa seja a captura. - R Hughes
É seguro apenas excluí-lo com Rightclick -> Delete. Isso não exclui a pasta vinculada. - 0x25b3


Em Powershell, não use rmdir! Usar cmd /c rmdir .\Target em vez de. Eu mesmo testei e confirmei aqui: http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/


22



Esse blog confunde o significado de "Destino", que é o diretório real para o qual o link aponta, e que as pessoas geralmente desejam evitar excluir enquanto o link é removido. - kreemoweet


Existe outra solução testada por mim e segura de usar. basta adicionar à pasta real _ (exemplo: foo become foo_) em seguida, basta excluir seu link simbólico e, em seguida, remover _ da sua pasta verdadeira.


21



sim, esta é a solução 100% mais segura depois que você sabe que o powershell não dá a mínima para o rmdir - test30
Esta é uma precaução inteligente. +1 - Johannes
Aviso: Eu não acho que isso pode não funcionar no Win10, pois está corrigindo atalhos ao renomear. (Pelo menos atalhos clássicos) Não testado embora. - 0x25b3
Eu fiz isso apenas no caso. Depois que renomei a pasta de destino, o link symbolink falhou quando tentei acessá-lo, para que eu pudesse excluí-lo sem me preocupar. - Andrew


O mklink não pode ser usado para excluir links simbólicos. Para remover um link simbólico, basta excluí-lo como se estivesse removendo um arquivo normal. Por exemplo, para excluir o link simbólico foo criado acima, digite o seguinte comando:

Se o link for um link rígido para um diretório:

C:\test>rmdir foo

ou então, SE o link aponta para um arquivo (em oposição a um diretório)

C:\test>del foo

Fonte: http://www.mydigitallife.info/2007/05/22/create-symbolic-links-hard-links-and-directory-junctions-in-vista-with-mklink/


20



Apenas certifique-se de não excluí-lo com del /S ou Explorer. - Hello71
Veja a resposta de eddyq abaixo porque o uso de del para um link feito em um diretório não funcionará e tentará excluir o conteúdo da pasta. - jpierson
Hardlinks para diretórios não existem. Eu acho que você quis dizer symlink. - Brilliand