Windows支持 4 种 ”链接 ” 机制,分别是shortcut(快捷方式)、hard link(硬链接 )、junction point(软链接 )、symbolic link(符号链接 )。本文记录相关内容 。
shortcut
以.lnk文件 方式存在,适用于Explorer等应用程序。非NTFS内置机制,从Win95开始得到支持 。fat32 支持 。
可以跨盘符,可以跨主机,可以使用UNC路径、网络驱动器。
文件 大小仅有几百字节, 跟原文件 大小无关,文件 类型是.lnk。
hard link
hard link与targetfile必须位于同一volume,可以简单理解成不能跨盘符。
本身无文件 ,为文件 创建多入口。由于不同的文件 指向的是同样的数据,所以无论给同一个 文件 创建多少个硬链接 ,他们占整个卷的数据大小都是一样的。
在Explorer中删除 hard link,不影响targetfile。删除 target file,不影响hardlink。事实上由于hard link的语义,此时剩下的hardlink就是原始数据的唯一访问点。只有当一个 文件 ID 对应的所有硬链接 被删除 时,数据才真正被标记 为删除 。
New-Item Hardlink.txt -ItemType HardLink -Target C:\...\Demo.txt
junction point/softlink/reparsepoint
NTFS内置机制,从Windows2000/XP开始得到支持 。是 NTFS 3.0 及以上文件 系统(Windows 2000 及以上系统)的特性,它是链接 本地目录(可跨卷)的访问点,通过交接点的操作都会被系统映射到实际的目录上。通过建立交接点,可以在保证一个 目录实例(目录的一致性)的前提下,允许用户 或程序从本地文件 系统中的多个位置访问此目录。
只适用于目录。只能使用绝对路径 。即使创建junction point时使用了相对路径,保存到NTFS中时将隐式转换成绝对路径 。
junction point必须与target directory位于同一local compu ter,可以简单理解成不能跨主机, 在local compu ter范围内,可以跨盘符。不能使用UNC路径;假设Z是通过网络映射生成 的盘符,同样不适用于Z。
对交接点内文件 和子目录的“建立、删除 、修改 ”等操作都被映射到对应的目录中的文件 和子目录上,对交接点的“复制、粘贴、剪切、配置 ACL”,只会影响此交接点,在同一卷内移动交接点,只会影响此交接点,但在不同卷间移动交接点,会将此交接点转换为正常目录,并且交接点对应目录下的所有内容 都会被移动。
删除 target directory,junction point仍将存在,但失效了,变得不可用。这个很好理解,因为此时junction point指向不存在的目录。
Vista的"C:\Documents and Settings"是指向"C:\Users"的junctionpoint,这样一些使用了硬编码"C:\Documents and Settings"的老程序可以在Vista上正常工作。
symbolic link
NTFS内置机制,从Vista开始得到支持 。文件 类型是.SYMLINK
同时适用于文件 、目录。这是一种超级shortcut,文件 大小为0字节和不占用空间。
可以使用相对、绝对路径 。假设创建symbolic link时使用了相对路径,保存到NTFS中的就是相对路径,不会隐式转换成绝对路径 。可以跨盘符,可以跨主机,可以使用UNC路径、网络驱动器。
符号链接 (Symlink,Softlink)是对文件 或目录的引用,实际上符号链接 本身是一个 “记录着所引用文件 或目录的绝对或相对路径”的特殊文件 ,通过符号链接 的操作都会被重定向 到目标文件 或目录。对符号链接 和快捷方式的“读、写、遍历”等操作都会被重定向 到目标文件 或目录,但对它们的“复制、删除 、移动、配置 ACL”等操作只针对自身。
在Explorer中删除 symboliclink,不影响target。删除 target,symboliclink仍将存在,但失效了,变得不可用。它们可以像普通文件 一样操作,但所有对符号链接 的操作都实际作用于目标对象。符号链接 对用户 而言是透明的,符号链接 看上去和普通的文件 和文件 夹没有区别,操作方法 也一模一样(更类似于 Linux 的软链接 )。
mklink /D to fromNew-Item [链接 名称 ] -Itemtype SymbolicLink -Target [目标绝对路径 ]
创建符号链接 不仅可以当作快捷方式使用,最重要的是重定向 链接 符可以被程序读取然后重定向 真正的位置,这是快捷方式无法做到的。
参考资料