Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

时间:2022-03-16 17:45:24

为了探究Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响,先创建一个文件夹test,以及对应的文件test.txt内容如下Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

然后开始创建对应的硬链接文件。

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

可以看出,硬链接产生的文件的索引节点号和源文件相同,且文件链接数从1变成了2。现在修改test1.txt中文件,添加一行内容。

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

两个文件的内容都发生改变。因为硬链接产生的文件和源文件共同指向磁盘上的同一份数据,因此文件节点号都相同。也因为这样,删除了其中一份,另一份并不会影响,只有在没有文件指向硬盘上的这份数据之后,系统才会将这部分数据删除。

然后创建对应的软链接文件

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

观察后发现软链接文件的文件节点号和源文件并不相同,而且文件属性的地方还有标志位l。软链接并不会让文件的索引节点数变多。软链接产生了一个特殊的文件,该文件的内容指向另一个文件的位置。可以看书软链接产生的文件文件大小比源文件要小许多。

然后使用cp命令复制该文件。

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

复制后的文件拥有另一个索引节点号,不增加文件链接数。cp是在硬盘上复制出一份新的数据。

使用mv命令对文件进行改名操作

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

改名后源文件的改名后文件test4.txt拥有和原来相同的文件链接数和索引节点号。可是改名会导致软链接文件不可用

最后使用rm命令删除文件

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

删除复制出来的文件以及软链接文件都对文件链接数没有影响。

Linux下,ln、cp、mv、rm命令对文件链接数和索引节点号的影响

最后删除硬链接产生的文件可以发现文件链接数变回1