1

TLDR;运行下面的命令时,出现“当该文件已存在时无法创建文件”错误。我对我在符号链接上阅读的所有内容感到非常困惑,因为基本上总是不清楚哪个目录是哪个目录,以及手头的两个或一个目录是否需要已经存在。所以我在下面发布了我的命令,我希望有人能发现错误(并用简单的术语解释):)。


最近,我的 C 盘 (SSD) 已满,我决定将一些东西移到我的 D 盘(普通硬盘)。我阅读了有关符号链接的内容并尝试将目录从 C:\ 链接到 D:,但我总是收到“当该文件已存在时无法创建文件”错误。我的命令如下:

C:\users\me\documents\main-folder\folder-I-want-linked > mklink /J "D:\folder\another folder\folder-where-I-want-to-store-the-docs" "C:\users\me\documents\main-folder\folder-I-want-linked"

虽然我是一个初级程序员并且知道一些关于 CLI 的事情,但我无法弄清楚我的错误。

  1. 我想也许我应该颠倒这两个目录。我读到的资料让我感到困惑:例如,微软官方文档谈到 and ,它可能会引用这两个目录,具体取决于您如何看待它。我对符号链接应该如何指向有点困惑:按照我的常识,但根据howtogeek.com 的这个页面,我认为这种语法是正确的。

  2. 我认为,由于错误是某些东西已经存在,我的空地图应该被删除,因为它可能会被创建?在这方面,我发现superuser.com 上这个公认的答案非常令人困惑。我还在stackoverflow.com 上看到了这个接受的答案,说目标目录不存在?因为这是我要放置文件的位置,所以我觉得这很奇怪。从另一个来源(我无法快速找到)我了解到这两个目录都需要存在。

  3. 我认为我运行命令的地图不正确。但是,在此命令之上运行一层命令(因此在“主文件夹”中)也给了我错误;从 D 驱动器位置尝试此操作也是如此。但是,从前面提到的 howtogeek.com 来源,我得到了我不需要在特定目录中的想法?

我还在这个网站上看到了很多关于符号链接的问题,但我没有找到任何可以帮助我的答案。我可能在这里让事情变得复杂,所以如果有人有一个简单的更正/解释,我将不胜感激:)。

4

1 回答 1

1

感谢@Mofi,我发现了我的错误:

  1. 空文件夹(folder-I-want-linked在我的 C 驱动器上)不应该存在:它将在创建链接时创建;
  2. 这也意味着符号链接应该从父目录(C:\users\me\documents\main-folder);
  3. 我应该使用/D而不是/J.
  4. 出于某种原因,拼出我想要创建的文件夹的绝对路径不起作用(C:\...\...\folder-I-want-linked),但是我当前位置的相对路径(如此简单folder-I-want-linked)起作用。

我的示例的正确语法:

C:\users\me\documents\main-folder> mklink /D "folder-I-want-linked" "D:\folder\another folder\folder-where-I-want-to-store-the-docs"
于 2020-09-01T09:17:25.203 回答