软链接:
代码语言:javascript复制ln -s file1 file2//file1为目标文件,file2为软链接文件
演示:
从上图可以得出:
软链接本质不是同一个文件,因为inode不同。
作用:
软连接就像是Windows里的快捷方式,里面存放的是目标文件的路径,打开软连接文件,也就是相当于打开了目标文件,当目标文件被删除,软链接文件也会失效。
硬链接:
代码语言:javascript复制ln file1 flie2//file1为目标文件,file2为硬链接文件
演示:
从上图得出:
硬链接本质是一个文件,因为inode相同。
作用:
硬链接相当于给文件起别名,也可以用来备份。 在指定目录下添加一个新的文件和inode建议映射关系。
文件的磁盘级引用计数:
注意上图文件权限右边的数字2 就是文件的引用计数,文件的引用计数就是:有多少个文件名字符串通过相同的inode指向我。
上图用的硬链接,所以inode相同,就导致有2个文件名字符串映射了相同的inode,所以这两个文件的文件引用计数是2。
注意:
目录文件规定不能硬链接,不然会发生路径环绕,但linux系统目录文件存在硬链接文件,比如 . 当前目录 .. 上级目录,这两个是特例,linux会特殊处理。