Windows创建硬链接和符号链接
两种形式的文件链接特性
符号链接
符号链接则是将自己链接到一个目标文件或目录的路径上。当系统识别到符号链接时,它会跳转到符号链接所指向的目标中去,而不改变此时的文件路径。
- 使用方法
1
New-Item "引用名称" -ItemType SymbolicLink -Target "绝对路径"
符号链接像一个虫洞:当用户或应用要访问此虫洞时,就会被传送到符号链接所指向的地方,但他们是通过虫洞访问此目标的,所以其路径仍是虫洞自己的路径,这是它和快捷方式在效果上的区别所在。
符号链接具有以下特性:
- **只需要一个路径
- **创建时,它的目标可以是本地的、远程的任何文件或目录,即使目标不存在。
- 所做的一切更改都会反映在目标上。因为打开符号链接,就是打开了目标。复制符号链接,会复制目标的内容。
- 移动符号链接,则会移动链接本身。
- 更改目标的名称,移动目标的位置,符号链接将会成为死链,因为它无法通过设定的路径找到目标。
- 更改符号链接本身的名称和位置,目标不受影响。
- 当目标被删除时,符号链接继续存在,但会成为死链,无法打开。
- 当符号链接被删除时,它指向的目标不受影响。
硬链接
硬链接和符号链接的原理完全不同,符号链接是指向目标路径的链接,而硬链接则是指向目标数据对象的链接。因为一个卷中的数据对象都有一个独一无二文件 ID,也可以说硬链接是指向目标文件 ID 的链接。
- 使用方法
1
New-Item "引用名称" -ItemType HardLink -Target "绝对路径"
硬链接具有以下特性:
- 硬链接可以看作是一个既有文件的别名
- 创建时,它必须指向本地的同一个卷内存在的文件,在 C 盘创建硬链接只能指向 C 盘存在的文件。
- 打开硬链接,所做的一切更改都会反映在目标文件上。因为目标文件也链接着被更改的数据。
- 更改目标文件的名称、位置,硬链接不会受到影响。更改硬链接的名称、位置,目标文件不受影响,链接不会断开。
- 当目标被删除时,硬链接继续存在,且可以正常打开、编辑。因为他具备一个完整的文件结构。
- 当硬链接被删除时,目标文件继续存在,不受影响。
使用举例
使用git
来管理本地配置文件,且配置文件无法移动的情况
windows本地的
$PROFILE
文件,可以使用硬链接到某个git仓库,这样在原有的$PROFILE
所做的所有配置可以直接同步到对应仓库
使用OneDrive
备份软件数据
OneDrive
可以直接创建一个管理目录来存放软件数据:比如OneDrive
中创建目录,再到应用目录中创建链接即可