首页 > 代码库 > 文件和目录详解(七)---符号链接和硬链接

文件和目录详解(七)---符号链接和硬链接

  在linux系统中,符号链接也是文件的一种。
 
  linux操作系统并不是通过文件名来确定一个文件的,而是通过inode号码来确定的。一个文件的inode信息中并不包括文件名,其文件名是存放在其上层目录的的目录项中。而文件名只是一个指向文件inode的指针,用户通过文件名找到相应的文件,也就是硬链接。所以可以创建多个文件名去指向同一个文件inode,这些个文件名都是硬链接,所有指向同一个源文件的硬链接文件的inode都是一样的,在inode中会有统计指向该inode的链接数,如果该链接数为0,则意味着用户删除了该文件,系统会回收其inode号码。所以如果将其中一个硬链接也就文件名删除后,还可以通过其他的硬链接来访问此文件inode。
 
  符号链接不同,符号链接不是直接指向文件inode的,符号链接有自己本身的一个inode号码,不同于源文件的inode号码,这个符号链接文件中的内容是源文件的路径名,通过路径名找到源文件。所以当删除源文件或者移动源文件时,此时符号链接就失效了。符号链接不会增加源文件的链接数目。
======================================================
  不同的系统调用在打开符号链接文件的时候会有不同的处理情况,有的会跟随符号链接文件,有的不会跟随符号链接文件。跟随符号链接文件就是说操作的实际上是符号链接指向的文件。不跟随符号链接文件就是说操作的就是符号链接文件本身。
技术分享
技术分享
 

文件和目录详解(七)---符号链接和硬链接