如何删除符号链接?

Ben*_*n V 371 windows-7 symbolic-link

我使用mklink. 现在我需要更改它,但我不知道如何删除它,以便我可以正确地重新创建它。

小智 632

要非常小心。

如果您的符号链接是目录(使用mklink /d),则 usingdel将删除目标目录(链接指向的目录)中的所有文件,而不仅仅是链接。

解决方案: rmdir另一方面只会删除目录链接,而不是链接指向的内容。

  • 刚刚不小心这样做了(删除了目标文件夹的完整内容),这是一个重要的提示。 (132认同)
  • 但是不要在 PowerShell 中使用 `rmdir`。首先将其包裹在 `cmd` 中。看我下面的回答... (14认同)
  • 这个答案并不完全准确。`Del` 删除文件,而不是文件夹。因此,您不会使用 `del` 来删除链接。 (5认同)
  • 如果我通过Windows资源管理器删除它怎么样???? (5认同)
  • 我不知道在什么时候开发人员认为在删除链接时删除链接后面的文件是合乎逻辑的。在第 5 次或第 6 次啤酒之后?或者也许在蘑菇之后...... (5认同)
  • 我担心 rmdir 在不是 SYMLINKD 的目录上,但 rmdir * will * 如果它是一个非空目录,则会提供警告。 (2认同)
  • @RomainVincent,出于向后兼容性的原因,“目录链接”(即SYMLINKD)实际上是一个目录,也是一个链接(即重新分析点)。 CMD 没有特殊情况,它是一个链接。但是,它确实会提示“您确定(Y/N)吗?”警告它将删除“<链接路径>\\*”。我同意最好对目录链接的行为进行特殊处理。 API 本身对它们进行特殊处理,例如“RemoveDirectory”将删除目录链接,即使目标目录不为空,但直接在链接目标上尝试相同的操作将会失败。 (2认同)
  • 如果您尝试使用“rmdir”删除一个“不是”符号链接的非空目录,则会失败,因为该目录不为空。如果您在指向非空目录的符号链接上使用相同的命令,它将成功。 (2认同)

dde*_*986 91

要删除使用mklink /d它创建的目录符号链接,可以安全地删除 Windows 资源管理器中的符号链接。

  • +1 告诉人们可以通过 Windows 资源管理器删除符号链接。 (33认同)
  • 它是正确的。我总是这样做。刚刚又测试了一下。 (4认同)
  • 只需使用右键单击 -> 删除即可将其删除。这不会删除链接的文件夹。 (4认同)
  • 这也对我有用。我删除了链接而不是链接到的源文件夹。或许就是抓住了。 (3认同)
  • 这有效,但我试图移动父文件夹,因此请注意符号链接仍将锁定回收站。使用`SHIFT`+`DEL` 可以绕过垃圾箱。 (2认同)

小智 52

对于文件的符号链接,请使用del. 对于mklink /d使用制作的目录的符号链接,请使用rmdir.

  • @Tristan 的警告不正确,这个答案是准确的。在 Windows 7 上测试。 (8认同)
  • 警告:“del”将删除文件而不仅仅是链接。 (6认同)

nor*_*ben 31

在 Powershell 中,不要使用rmdir! 使用cmd /c rmdir .\Target来代替。我自己对此进行了测试并在此处进行了确认:http : //kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/

  • [`rmdir` 是 cmd.exe 的内部命令](https://ss64.com/nt/rd.html),因此显然要从其他 shell 调用它,你需要 `cmd /c` 或 `cmd / k`。PowerShell 中的 `rmdir` 只是 `Remove-Item` 的别名 (4认同)

小智 27

我测试了另一种解决方案并且可以安全使用。只需添加到真实文件夹 _(例如:foo 变为 foo_)然后只需删除您的符号链接,然后从您的真实文件夹中删除 _。

  • 是的,这是 100% 最安全的解决方案,因为你知道 powershell 没有给出关于 rmdir 的 as**t (3认同)

Dai*_*tsu 21

mklink 不能用于删除符号链接。要删除符号链接,只需像删除普通文件一样删除它们。例如,要删除上面创建的 foo 符号链接,请输入以下命令:

如果链接是指向目录的硬链接:

C:\test>rmdir foo
Run Code Online (Sandbox Code Playgroud)

否则,如果链接指向文件(而不是目录)

C:\test>del foo
Run Code Online (Sandbox Code Playgroud)

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

  • 只要确保不要用`del /S` 或资源管理器删除它。 (2认同)
  • 目录的硬链接不存在。我想你的意思是说符号链接。 (2认同)