Windows创建硬链接和符号链接

两种形式的文件链接特性

符号链接

符号链接则是将自己链接到一个目标文件或目录的路径上。当系统识别到符号链接时,它会跳转到符号链接所指向的目标中去,而不改变此时的文件路径。

  • 使用方法
    1
    New-Item "引用名称" -ItemType SymbolicLink -Target "绝对路径"

    符号链接像一个虫洞:当用户或应用要访问此虫洞时,就会被传送到符号链接所指向的地方,但他们是通过虫洞访问此目标的,所以其路径仍是虫洞自己的路径,这是它和快捷方式在效果上的区别所在。

符号链接具有以下特性:

  • **只需要一个路径
  • **创建时,它的目标可以是本地的、远程的任何文件或目录,即使目标不存在。
  • 所做的一切更改都会反映在目标上。因为打开符号链接,就是打开了目标。复制符号链接,会复制目标的内容。
  • 移动符号链接,则会移动链接本身。
  • 更改目标的名称,移动目标的位置,符号链接将会成为死链,因为它无法通过设定的路径找到目标。
  • 更改符号链接本身的名称和位置,目标不受影响。
  • 当目标被删除时,符号链接继续存在,但会成为死链,无法打开。
  • 当符号链接被删除时,它指向的目标不受影响。

硬链接

硬链接和符号链接的原理完全不同,符号链接是指向目标路径的链接,而硬链接则是指向目标数据对象的链接。因为一个卷中的数据对象都有一个独一无二文件 ID,也可以说硬链接是指向目标文件 ID 的链接。

  • 使用方法
    1
    New-Item "引用名称" -ItemType HardLink -Target "绝对路径"

硬链接具有以下特性:

  • 硬链接可以看作是一个既有文件的别名
  • 创建时,它必须指向本地的同一个卷内存在的文件,在 C 盘创建硬链接只能指向 C 盘存在的文件。
  • 打开硬链接,所做的一切更改都会反映在目标文件上。因为目标文件也链接着被更改的数据。
  • 更改目标文件的名称、位置,硬链接不会受到影响。更改硬链接的名称、位置,目标文件不受影响,链接不会断开。
  • 当目标被删除时,硬链接继续存在,且可以正常打开、编辑。因为他具备一个完整的文件结构。
  • 当硬链接被删除时,目标文件继续存在,不受影响。

使用举例

使用git来管理本地配置文件,且配置文件无法移动的情况

windows本地的$PROFILE文件,可以使用硬链接到某个git仓库,这样在原有的$PROFILE所做的所有配置可以直接同步到对应仓库

使用OneDrive备份软件数据

OneDrive可以直接创建一个管理目录来存放软件数据:比如QQwechat等软件的聊天记录,提前在OneDrive中创建目录,再到应用目录中创建链接即可