无法创建Symlink-当文件已经存在时,无法创建该文件



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


最近,我的C型硬盘(SSD(已满,我决定把一些东西移到D型硬盘(普通硬盘(上。我读过关于符号链接的文章,并试图将目录从C:\链接到D:,但我总是得到"当文件已经存在时不能创建该文件";错误我的命令如下:

C:usersmedocumentsmain-folderfolder-I-want-linked > mklink /J "D:folderanother folderfolder-where-I-want-to-store-the-docs" "C:usersmedocumentsmain-folderfolder-I-want-linked"

尽管我是一名初级程序员,对CLI有一些了解,但我还是无法理解自己的错误。

  1. 我想也许我应该反转这两个目录。我读到的来源让我感到困惑:例如,微软官方文档中谈到和,根据你对它的看法,它可以同时引用这两个目录。我有点困惑符号链接应该如何指向:在我的常识中,但根据howtogeek.com的这一页面,我认为这种语法是正确的。

  2. 我想,既然错误是某个东西已经存在,我的空地图应该被删除,因为它可能会被创建?在这方面,我发现superuser.com上的这个公认答案非常令人困惑。我在stackoverflow.com上也看到了这个公认的答案,说目标目录不可能存在?因为这是我想放文件的地方,我觉得这很奇怪。从另一个来源(我找不到这么快(,我明白这两个目录都需要存在。

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

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

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

  1. 空文件夹(我的C-drive上的folder-I-want-linked(应该还不存在:它将在创建链接时创建
  2. 这也意味着符号链接应该从父目录(C:usersmedocumentsmain-folder(进行
  3. 我应该使用/D而不是/J
  4. 出于某种原因,拼写出我想要创建的文件夹的绝对路径(C:......folder-I-want-linked(不起作用,但从我当前位置开始的相对路径(简单地说是folder-I-want-linked(起作用

我的示例的正确语法:

C:usersmedocumentsmain-folder> mklink /D "folder-I-want-linked" "D:folderanother folderfolder-where-I-want-to-store-the-docs"

只需移动到要创建链接的目录,然后删除要链接的文件,然后运行mklink/D"要链接的文件""从哪里链接";

最新更新