无法创建符号链接 - 当文件已经存在时无法创建文件

Unable to create Symlink - cannot create a file when that file already exists

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


最近,我的 C 盘 (SSD) 满了,我决定将一些东西移到我的 D 盘(普通硬盘)上。我阅读了有关 symlinks 的信息并尝试 link 从 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. 我想也许我应该把这两个目录颠倒过来。我阅读的资料让我感到困惑:例如,the official Microsoft documentation talks about and , which could refer to both directories depending on how you look at it. I am a little confused as to how symlinks are supposed to point: in my common sense, but I would think this syntax is correct according to this page from howtogeek.com .

  2. 我想,由于错误是某些东西已经存在,所以应该删除我的空地图,因为也许会创建它?这方面我找this accepted answer at superuser.com very confusing. I also saw this accepted answer here at whosebug.com,说的是destination directory cannot exist?因为这是我要放置文件的位置,所以我觉得这很奇怪。从另一个来源(我无法快速找到)我了解到这两个目录已经存在。

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

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

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

  1. 空文件夹(folder-I-want-linked 在我的 C-drive 上)应该还不存在:它将在创建 link;
  2. 时创建
  3. 这也意味着 symlink 应该从父目录 (C:\users\me\documents\main-folder);
  4. 我应该使用 /D 而不是 /J
  5. 出于某种原因,拼写出我想创建的文件夹的绝对路径不起作用 (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"