1、先看下面的脚本。其中hello.txt文件已经存在,创建hello1.txt和hell2.txt文件。
ln hello.txt hello1.txt
ln -s hello.txt hello2.txt
2、使用stat命令查看文件的属性
2.1、在没有执行上述两个命令前,其中硬链接是1,当执行完第一条命令后
发现硬链接变成2,因此第一条指令是硬链接的命令。查看硬链接生成的文件属性
发现硬链接生成文件的inode和原始文件hello.txt的 inode是一样的,因此可以说明两个是同一个文件,只是取了不同的名字而已。
修改任何一个硬链接文件的内容,其他文件也会发生变化。
删除文件时,只有当硬链接的个数等于0时,文件才是最终的删除。
注意:文件夹是没法完成硬链接操作的。
2.2、再执行完第二条命令后,stat查看原始文件并没有发生变化。stat查看新生成的文件属性。
发现新生的文件hello2.txt与原始文件不一样,而且文件属性也变成了符号链接。说明这是一个新文件,只不过是文件的内容指向了原始文件hello.txt,类似于windows下的快捷方式。因此删除原文件也没关系,只不过软链接指向的内容不存在而已。
当访问某个文件时,文件的路径名比较深,可以通过创建软链接方式缩短。
3、硬链接和软链接的逻辑关系图