为了探究Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响,先创建一个文件夹test,以及对应的文件test.txt内容如下
然后开始创建对应的硬链接文件。
可以看出,硬链接产生的文件的索引节点号和源文件相同,且文件链接数从1变成了2。现在修改test1.txt中文件,添加一行内容。
两个文件的内容都发生改变。因为硬链接产生的文件和源文件共同指向磁盘上的同一份数据,因此文件节点号都相同。也因为这样,删除了其中一份,另一份并不会影响,只有在没有文件指向硬盘上的这份数据之后,系统才会将这部分数据删除。
然后创建对应的软链接文件
观察后发现软链接文件的文件节点号和源文件并不相同,而且文件属性的地方还有标志位l。软链接并不会让文件的索引节点数变多。软链接产生了一个特殊的文件,该文件的内容指向另一个文件的位置。可以看书软链接产生的文件文件大小比源文件要小许多。
然后使用cp命令复制该文件。
复制后的文件拥有另一个索引节点号,不增加文件链接数。cp是在硬盘上复制出一份新的数据。
使用mv命令对文件进行改名操作
改名后源文件的改名后文件test4.txt拥有和原来相同的文件链接数和索引节点号。可是改名会导致软链接文件不可用
最后使用rm命令删除文件
删除复制出来的文件以及软链接文件都对文件链接数没有影响。
最后删除硬链接产生的文件可以发现文件链接数变回1