inode工作原理:  

一个文件包括元数据和数据内容,元数据存放在inode table中,而数据内容存放在block块中,inode存放着各个文件的元数据条目,其内容包括,一些基本的元数据比如mode,ownership,sizetimestamp,还存放着指向数据的指针,这些指针分为直接指针和间接指针,双重间接指针甚至三种间接指针。直接指针代表直接指向数据内容的block块,间接指针下一层指向虽然是一个数据块,但是数据块内却不是文件的数据内容,而是一个指针数据块,如果块大小为4k,每个指针占4个字节,则这个指针数据块中可以存放1024个指针,然后这些指针指向的才是真正的数据内容。同样的如果是双重间接指针,则指针数据块中的每一个指针又指向了1024个新的指针数据块,这些新的指针数据块,每一个指针数据块都含有1024个指针,这些指针指向的才是真正的数据内容。三重指针继续向下分析即可。


软硬链接的区别:

 软链接:软链接中存放的是另一文件的路径指向,可以将它看成一个普通文件,只不过其文件内容是别的文件的路径名指向。删除软链接并不影响被指向的原文件,但若被指向的原文件被删除,则相关软连接就无法查看了。

      软连接 ln -s 原始文件路径 软连接

      创建时一定要指明原文件路径,如果不写,当前路径一定要在此软链接的目录下
      相对路径:相对于软链接文件的路径,而不是相对于当前的工作目录

      可以对目录创建软链接,可以跨分区创建,并且软链接文件有自己的文件属性和权限

[xiaoshui@localhost 2text]$ ls /home/xiaoshui/
f1  f11  text
[xiaoshui@localhost 2text]$ ls
[xiaoshui@localhost 2text]$ ln -s ../../../../../../home/xiaoshui/f1  f111
[xiaoshui@localhost 2text]$ ls -l
total 0
lrwxrwxrwx 1 xiaoshui xiaoshui 34 Jul 29 16:11 f111 -> ../../../../../../home/xiaoshui/f1

      当然原文件路径也可写绝对路径

[xiaoshui@localhost 2text]$ ln -s  /home/xiaoshui/f1 f111
[xiaoshui@localhost 2text]$ ls -l
total 0
lrwxrwxrwx 1 xiaoshui xiaoshui 17 Jul 29 16:14 f111 -> /home/xiaoshui/f1

硬链接:可以理解为一个人有两个名字,硬链接也是如此,它拥有多个文件名,并且每个文件名都指向同一个inode号,由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。

 硬链接不能跨分区,不能跨文件系统,不能是目录。

[xiaoshui@localhost 2text]$ touch f1
[xiaoshui@localhost 2text]$ ls
f1
[xiaoshui@localhost 2text]$ ls -i
67410541 f1
[xiaoshui@localhost 2text]$ ln f1 f2
[xiaoshui@localhost 2text]$ ls -i
67410541 f1  67410541 f2

可以看出其inode号相同。