默默关注
概念链接——是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
inode文件系统要想真正了解软硬链接区别必须要简单了解下inode文件系统。
我就简单介绍下:格式化硬盘时会区分两个区一个是数据区,存放真实数据。另一个是inode区存放源数据(文件的字节数、文件拥有者、文件用户组、文件权限、文件时间戳、数据区的位置、链接数即多少文件名指向这个inode)
inode号码:系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据
硬链接理解inode
https://www.ruanyifeng.com/blog/2011/12/inode.html
相当于复制一个文件,命令查看文件大小和目标文件一样大
修改其中一个文件的内容都会改变
不能链接目录和跨分区
俩个文件的inode节点一样
删除其中一个不会影响另一个
[root@develop ~]# ln test test1[root@develop ~]# ll -i201662916 -rw-r--r--. 2 root root 0 Oct 6 02:25 test201662916 -rw-r--r--. 2 root root 0 Oct 6 02:25 test1
可以看到俩个文件的inode节点一样,链接数也是2
读取数据时通过文件名找到inode节点然后读取数据
软链接相当于windows系统的快捷方式
修改其中一个的内容都会改变
可以链接目录和跨分区
有单独的inode节点号
删除原文件链接无法访问
有自己的独立权限(inode节点号不同,元数据不同,存储的权限自然有差异)
链接数不会增加
[root@develop ~]# ln -s ~/test ~/test1[root@develop ~]# ll -i201662916 -rw-r--r--. 1 root root 0 Oct 6 02:25 test201662897 lrwxrwxrwx. 1 root root 10 Oct 6 02:48 test1 -> /root/test
可以看到inode节点不同,链接数也没有增加,可以明显看出test1是软链接,还能看出源文件,所以我们推荐使用软链接
读取软链接时先读取软链接的inode节点在读取数据,数据里面存的的是路径,然后通过路径找到目标文件的inode节点,在读取目标数据。这就是我们为什么说在软链接中使用绝对路径的原因了
总结看完上面的讲解自然会对软硬链接有一定的理解,要深入理解软硬链接还是要先了解先inode文件系统,对底层有一定的了解,自然就会对软硬链接了然于胸。
结语要深入了解某个东西一定要深入底层,做到知其然,知其所以然。欢迎大家关注我的公众号:阿洋的技术小屋(it-mingyang)
END 扫码关注我们 博客:https://zmyblog.cn 更多精彩 关注公众号 转载是一种动力 分享是一种美德