前言
1.背景
当几个用户同在一个项目里工作时,常常需要共享文件。
为了解决不同用户在不同目录下共享同一个文件的问题,而有了链接(link)的概念
2.定义
链接(link)假设C目录下有一个文件(所有者为C),而该文件现在也出现在B的目录下;B的目录与该共享文件的联系称为一个链接。以下两种 link都基于这个情况说明
硬链接(hard link)目录指向了各个文件的i节点,当有共享文件时,i节点计数加一
符号链接(symbolic link)系统建立一个LINK类型的文件,放在B目录下,该文件只包含了他所链接的文件的路径名
3.存在的问题
对于硬链接,如果C试图删除(delete)文件,系统删除了该文件以及其i节点,此时共享者B目录中将指向一个无效的i节点;
对于符号链接,它需要额外的开销,即必须首先读取LINK文件,然后根据路径定位到i节点。这些操作也许需要很多次额外的磁盘访问;
链接的通病,一个文件将会有两个或多个路径。查找一指定目录及其子目录下的全部文件的程序将多次定位到被链接的文件。