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

27
我正在尝试在两个目录之间创建符号链接。我有一个名为TestDocs和TestDocs2的目录。我将在TestDocs中完成所有工作,但我需要TestDocs2中的所有内容都反映在TestDocs中。因此,在TestDocs2中的所有文件将被复制到TestDocs中,如果我在TestDocs中添加、更改文件等,则应在TestDocs2中反映出来。 所以我认为只需执行以下操作即可:
mklink /D TestDocs TestDocs2

但是当我这样做时,我会收到以下错误:

当文件已经存在时无法创建文件

为什么会出现这种情况?

此外,我在命令中TestDocs和TestDocs2的顺序是否有误?

感谢帮助,符号链接总是让我困惑!

5个回答

43

正确的用法是:

MKLINK [options] {link} {target}

你正在创建一个链接,所以link是你即将创建的新链接。
target是链接的目标,即现有目录。


1
好的,所以链接不能已经存在?目标将是我所有工作的目录? - user1513171
7
{link}必须是不存在的名称。{target}必须是一个已经存在的名称,例如:{link}指向{target}。 - Jay
1
哦,得了吧,捷克本地化的命令帮助把它搞反了:MKLINK [[/D] | [/H] | [/J]] Cíl Odkaz - Tomáš Zato

21

以下是我的操作过程:

我想将C:\ProgramData\Package Cache目录搬到F:分区。

所需步骤:

  1. "C:\ProgramData\Package Cache"物理移动到F:。现在,我有了"F:\ProgramData\Package Cache",而因为我搬走了,"C:\ProgramData\Package Cache"已经不存在了。

  2. 在命令提示符中运行以下命令(一行内输入,此处因可读性而拆分)

mklink /J "C:\ProgramData\Package Cache" 
          "F:\ProgramData\Package Cache"
  • 结果:

    Junction created for C:\ProgramData\Package Cache <<===>> 
                         F:\ProgramData\Package Cache`
    

  • 为什么是 /J 而不是 /D? - DoomerDGR8

    0

    我之前为了能够在多台机器上访问谷歌 Picasa 中的照片,曾经进行过如下操作:

    • 安装 Picasa
    • 运行该应用程序。这将创建所有必需的数据库文件。
    • 关闭应用程序。
    • 导航到存储数据库的目录 - 在 Windows 7 上,它将在 c:\users\\AppData\Local\Google 中创建。
    • 有两个文件夹 Picasa2 和 Picasa2Albums。将这些文件夹复制到网络位置。在我的情况下,我创建了一个名为 o:\PicasaDatabase 的文件夹,然后将这些文件夹复制到其中。
    • 接下来将原始文件夹重命名为 Picasa2.old 和 Picasa2Albums.old

    从提升的 cmd 提示符中运行以下命令:

    mklink /D "c:\Users\\AppData\Local\Google\Picasa2" "o:\PicasaDatabase\Picasa2"

    mklink /D "c:\Users\\AppData\Local\Google\Picasa2Albums" "o:\PicasaDatabase\Picasa2Albums"

    在源位置将创建两个符号链接,它们将指向网络驱动器。

    显然,像这样使用符号链接是应对无法进行网络化的应用程序的一种解决方法,只有一个用户可以同时访问数据库。


    0

    我曾经遇到过同样的问题。您必须确保源文件夹不存在(如果存在,则将其重命名为其他名称)。

    在下面的情况下,MobileSync下不应该存在备份文件夹。由于Apple iTunes寻找具有该名称的备份文件夹,因此只需将现有文件夹重命名为OriginalBackup之类的名称,以避免iTunes找到它。而是使用以下方式将mklink将备份文件夹与D:文件夹同义:

    mklink /J C:\Users\Dell\Apple\MobileSync\Backup D:\Apple\Backup\iPhoneXRBackup


    0

    我遇到了这个错误。我做了两件事来解决它。

    1. 检查我实际上所在的目录是否是我认为的那个,而不是另一个路径非常相似的目录。
    2. 在新链接名称周围加上引号。

    第一次尝试: mklink /d \shared_files ....\my-app-public\src\shared_files 出现了描述的错误。

    第二次尝试: mklink /d “.\shared_files” ....\my-app-public\src\shared_files 正常工作。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接