- 内核索引节点(in-core indoe):保存在内存中,在系统中每个打开的文件都对应着一个内核索引节点,
- 磁盘索引节点(on-disk inode):在文件系统中的每一个文件都有一个磁盘索引节点,保存在磁盘上,它所保存的具体信息与文件系统的类型有关。
注意:这两种索引节点的关系为:当进程打开一个文件时,文件的磁盘索引节点中的信息就会被载入内存,并建立一个内核索引节点。当内核索引节点被修改后,系统负责将其同步到磁盘上。磁盘索引节点与对应的内核索引节点所保存的信息并不是完全相同的。内核索引节点记录的是关于文件的更通用的一些信息,而忽略掉于具体文件系统类型相关的一些信息。
简而言之,软链接相当于windows中的快捷方式,硬链接相当于一个灾备系统,数据存放在两处,与复制不同
的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外,一处数据如果被删除了,不会影响
到另一处的数据.下面是详细的介绍:
硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修
改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。但如果我们删除硬链接文件的源文件,
硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当
成一个普通文件。
硬链接文件有两个限制:
1、不允许给目录创建硬链接;
2、只有在同一文件系统中的文件之间才能创建链接。
软连接指向的是路径(path),软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是
任意文件或目录,还可以链接不同文件系统的文件,和win下的快捷方式差不多。 软链接文件甚至可以链
接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己,类
似于编程语言中的递归。
软链接和硬链接实例:
[flydream@flydream test]$ echo "This is a source file." > source_file
[flydream@flydream test]$ ls -li source_file
661162 -rw-rw-r-- 1 flydream flydream 23 Apr 20 13:05 source_file
[flydream@flydream test]$ ln -s source_file soft_link1 加了参数 '-s' 软链接
[flydream@flydream test]$ ln source_file hard_link1
[flydream@flydream test]$ ls -li
total 8
661162 -rw-rw-r-- 2 flydream flydream 23 Apr 20 13:05 hard_link1
661163 lrwxrwxrwx 1 flydream flydream 11 Apr 20 13:05 soft_link1 -> source_file
661162 -rw-rw-r-- 2 flydream flydream 23 Apr 20 13:05 source_file
[flydream@flydream test]$