文件系统有两种类型的连接:硬连接和软连接,软连接也叫符号连接。
硬连接,严格来说其实不算连接。一个普通的文件或者目录拥有一个硬连接,文件系统通过这个硬连接来找到这个文件。为一个已经存在的文件p1创建一个硬连接p2的操作为:
bash#ln p1 p2
这样,文件名p1对应的文件inode,就多了另一个文件名p2指向它。注意,p1和p2是对等的,这里没有创建新的文件inode。
硬连接有两个缺陷:
1)不能为目录创建硬连接,因为这样会在目录树结构中产生环型结构,这样就无法定位一个文件;
2) 硬连接只能在本文件系统中创建,不能跨文件系统创建。例如,用户在/dev/sda1和/dev/sda2上分别创建一个文件系统,不能在sda1上创建sda2上文件的硬连接,反之亦然。
符号连接可以克服上述缺陷。与硬连接不同,符号连接实际上创建了一个新的文件,对应有新的inode。只不过这个新文件的内容很特殊,是被创建文件的目录名。
bash#ln -s p1 p2.