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

时间:2012-08-20 12:33:48

标签: windows-7 command-line symlink

我正在尝试在两个目录之间创建一个符号链接。我有一个名为TestDocs和TestDocs2的目录。我将在TestDocs中完成所有工作,但我需要将它全部反映在TestDocs2中。所以TestDocs2中的所有文件都将在TestDocs中复制,如果我在TestDocs中添加文件,更改文件等,它应该反映在TestDocs2中。

所以我认为这就像这样简单:

mklink /D TestDocs TestDocs2

但是当我这样做时,我得到错误:

  

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

为什么我会这样做?

另外,我的命令中的TestDocs和TestDocs2的顺序是否错误?

感谢您的帮助,Symbolic Links总是让我困惑!

4 个答案:

答案 0 :(得分:39)

正确用法是:

MKLINK [options] {link} {target}

您正在创建一个链接,因此link是您即将创建的新链接 target是链接的目标,即现有目录。

答案 1 :(得分:20)

以下是对我有用的方法。 我想将C:\ProgramData\Package Cache重新定位到F:分区。

我必须做的步骤:

  1. "C:\ProgramData\Package Cache"物理移至F:。现在我移动了"F:\ProgramData\Package Cache"并且"C:\ProgramData\Package Cache"已经消失了。

  2. 在cmd run中(全部在一行中,为了便于阅读而在此处拆分)

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

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

答案 2 :(得分:0)

我为Google Picasa做了这个,所以我可以在多台机器上访问照片。由于Picasa不是真正支持网络的程序,因此效果非常好。 对我来说,我做了以下事情:

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

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

mklink / D&#34; c:\ Users \\ AppData \ Local \ Google \ Picasa2&#34; &#34;○:\ PicasaDatabase \是Picasa2&#34;

mklink / D&#34; c:\ Users \\ AppData \ Local \ Google \ Picasa2Albums&#34; &#34;○:\ PicasaDatabase \的Picasa2Albums&#34;

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

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

答案 3 :(得分:0)

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

在以下情况下,MobileSync下不应该存在备份文件夹。由于Apple iTunes会使用该名称查找Backup文件夹,因此只需将现有文件夹重命名为OriginalBackup之类,以免iTunes找不到它。取而代之的是,mklink会将Backup命名为D:文件夹,如下所示:

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