linux中文件的inode编号的意义:
文件分为数据和元数据。
数据:用户记录在物理磁盘空间的真实数据。
元数据:分为文件名、文件大小、权限、inode编号、属主、属组、等,其中inode编号是指向其在物理磁盘中的真实的数据的。可以使用ls -l命令查看文件的inode编号。
硬链接:
硬链接就是同一个inode编号,不同文件的名字。
软链接:
是一个文件指向文件的路径,相当于windows的快捷方式。
硬链接的特性:
1不能跨文件系统创建硬连接
在/data目录下创建f1文件,然后在根下,创建/data/f1的硬链接看看能否创建成功
2不能对目录创建硬链接,因为是同一个inode编号,如果对目录创建连接,就会形成死循环。
查看a目录下的inode号
进入a目录下,查看隐藏文件.的inode编号和在进入b目录下查看..的inode编号
//这个也是linux特有的目录的硬链接了,所以在创建目录的时候,其硬链接的次数就是3。
3还有一个就是,对一个文件硬链接一次,其硬链接的次数就增加一次。
软链接的特性:
1创建软件的次数的时候,其links的次数不会增加,并且可以跨文件系统创建。
查看f1的inode为2,后使用相对路径在其文件夹下d创建其/data/f1的软链接,后查看其创建的软链接,发现未能正常创建。
//因为原文件如果要写相对路径,则要相对于创建文件的相对路径,重新创建,并且不会增加硬链接数
在/data/f1文件下写入数据,然后查看刚刚软链接文件,发现数据也是一样的。
2软链接可以对目录创建,其大小指向的路径的字符串的长度。
创建/data/ssss 文件夹
使用相对于原文件相对路径,在/dev/ssss111links
查看其软连接,看看是否创建成功,其大小创建的文字的大小。
总结硬链接和软连接的区别:
1硬链接不能创建目录和跨文件系统创建,软连接可以对目录和跨分区。
2每增加一次硬链接创建,其links次数便会增加一次,其inode相同。而软连接是指向另一个文件路径,其大小指向的路径字符串的长度,不会增加减少目标inode的引用计数,其inode不同。
3删除文件的硬连接的时候,对原文件不会影响,但如果原文件没有了硬连接,那么会导致文件删除。
4删除软连接的原文件的话,会导致连接指向失败。