要理解linux的软链接和硬链接要先理解linux的文件和目录在文件系统中存储方式。
在文件系统中,文件创建的时候系统会给文件分配一个node,该node有存储文件真实数据的block信息,同时也会确定文件和文件所在目录的关系,关系是这样的,目录在创建的时候,系统也会给目录分配一个node,node指向的block存放这该目录下的文件名和对应的文件node,这样文件和目录的关系就此建立。
1,软链接
文件软链接在创建的时候是在所在的目录下创建一个新的文件,所在目录的block(用于存放文件名和对应node)中的node指向的是源文件所在目录的node,再通过源文件所在目录的node找到源文件名和对应node号,再找到这个源文件的node号,最后才找到源文件。也就是说,软链接是通过源文件的目录node找到源文件,并不直接指向源文件的node
ln -s 源文件名 目标名(注意如果是创建文件软链接,目标名是一个文件名,如果建立目录软链接的时候,这个地方是一个位置不是名字,否则会在目标位置的下一层目录穿件软链接,哈哈)
2,硬链接
文件硬链接创建的时候会在所在目录下的一个block记录硬链接文件名和源文件的node,注意他直接找到源文件的node,没有通过源文件的目录。
无法创建目录硬链接;
还有两个图,记住这两个图更直观,明天再上。