链接方式其实是为了更好更方便的帮助应用程序使用操作系统中文件系统的资源。
当然相对操作系统,文件系统的不同,以及目标的不同,所以实现的方式也不同。
这里有个基础概念:当文件保存在硬盘中,实际上有两份重要信息:
(可以这样理解)
A. 文件名以及文件存放的空间地址
B. 文件实际内容的存放
副本?
所以这就直接将副本(copy)和其他链接方式区别开来:副本就是将A,B两份硬盘数据全部拷贝一遍,实际上对于操作系统或者应用程序就是不同的两个文件,可能数据信息是相同的,但是所存放的空间位置,目录位置等等都是不同的。两个文件的两个信息分别使用A1,B1,A2,B2来替代,则这种情况文件情况是:
A1 不等于 A2
B2 不等于 B2。
两个文件没有任何直接关系。
软连接、硬连接
软连接、硬连接通常是Linux/Unix的概念。
软链接同样是建立了个文件,但是这个文件保存的信息是:
A. 文件名以及文件存放的空间地址--这时保存的是软链接的名字
B. 文件实际内容的存放--这时保存的是实际指向的另外一个文件。
两个文件的两个信息分别使用A1,B1,A2,B2来替代,则这种情况文件情况是:
A1 不等于 A2
B1 包含的是 A2的信息。
文件查找路径是 A1--> B1 --> A2 --> B2,最终访问B2数据。
硬链接可以指向文件,也可以指向目录。可以跨越任何文件系统。拷贝删除原始文件或者链接文件,不会造成相互影响。
硬连接就不是建立个文件而已了,实际上是建立了不同的A信息,两个文件的两个信息分别使用A1,B1,A2,B2来替代,则这种情况文件情况是:
A1 不等于 A2
B1 就是 B2,实际上只有一份B!
这时候文件的访问路径其实有两条,通过A1 --> B,或者通过A2 --> B,最终都是访问B的数据(注意,B只有一份)
硬链接只能指向文件,不能指向目录。不能跨越任何文件系统。由于数据只有一份,所以即使删除其中任意一份(删除操作实际上只是删除文件的A部分),还是可以通过另外的路径访问。同时,不同的访问路径访问的是同样的数据,所以可以保证数据一直同步
快捷方式
通常是微软Windows的概念,理念上类似软连接,但是实际实现由于操作系统不同实现过程有很大差异。而快捷方式实际上是拥有lnk后缀的普通文件。文件夹快捷方式和文件的快捷实现不太一样,文件夹的快捷方式实际上是包含了部分文件的普通文件夹。
符号链接(不是连接),通常是软连接、硬连接、快捷方式等的总称。