Linux 系统中的硬链接和软链接
发布时间:2022-10-19 12:37:42 所属栏目:Linux 来源:
导读: Linux 系统中一切皆文件(目录也是文件)linux软链接,每个磁盘里面就是一个完整的文件系统。
文件系统可以分为两部分:数据区(data block)和节点区(inode block)。数据区就是存放文件数据的区域,节
文件系统可以分为两部分:数据区(data block)和节点区(inode block)。数据区就是存放文件数据的区域,节
Linux 系统中一切皆文件(目录也是文件)linux软链接,每个磁盘里面就是一个完整的文件系统。 文件系统可以分为两部分:数据区(data block)和节点区(inode block)。数据区就是存放文件数据的区域,节点区是存放目录结构、文件位置等信息的区域。 当我们访问文件,首先读取文件的节点 inode。节点里面存储了文件的很多重要信息:文件的唯一标识 Inumber、创建时间、修改时间、文件大小、所属用户、读写权限、文件数据在数据区的位置等。多个文件可以对应同一个节点 inode,但每个文件都有唯一的标识 Inumber。 读取文件的流程:目录节点 → 目录数据 → 文件节点 → 文件数据 用 ln 命令创建硬链接: shiyanlou:Code/ $ echo 'hello world' > a shiyanlou:Code/ $ echo 'hello shiyanlou' > b shiyanlou:Code/ $ ls -il 总用量 8 165197 -rw-rw-r-- 1 shiyanlou shiyanlou 12 7月 18 12:19 a 165203 -rw-rw-r-- 1 shiyanlou shiyanlou 16 7月 18 12:19 b shiyanlou:Code/ $ ln a ahard shiyanlou:Code/ $ ls -il 总用量 12 165197 -rw-rw-r-- 2 shiyanlou shiyanlou 12 7月 18 12:19 a 165197 -rw-rw-r-- 2 shiyanlou shiyanlou 12 7月 18 12:19 ahard 165203 -rw-rw-r-- 1 shiyanlou shiyanlou 16 7月 18 12:19 b ahard 就是 a 的硬链接,创建硬链接后,文件的链接数都从 1 变成了 2。 除了文件名不同,ahard 和 a 的所有信息都一样,包括前面的 inode 号和文件大小。 其实,ahard 就是一个指针,它和 a 指向相同的文件节点。硬链接可以任意移动,把 a 或 ahard 文件移动到其它目录,是没有问题的。 注意:不能对目录创建硬链接,不可以在不同文件系统的文件间建立硬链接 用 ln -s 命令创建软链接: shiyanlou:Code/ $ ln -s b bsoft shiyanlou:Code/ $ ls -il 总用量 12 165197 -rw-rw-r-- 2 shiyanlou shiyanlou 12 7月 18 12:19 a 165197 -rw-rw-r-- 2 shiyanlou shiyanlou 12 7月 18 12:19 ahard 165203 -rw-rw-r-- 1 shiyanlou shiyanlou 16 7月 18 12:19 b 165205 lrwxrwxrwx 1 shiyanlou shiyanlou 1 7月 18 13:34 bsoft -> b 可以看到,b 和 bsoft 是不同的两个文件,文件节点号不同,大小也不同。 访问软链接文件 bsoft 时,系统会识别链接指向的文件 b 并读取。 软硬链接的一些不同: 硬链接文件就是一个指针文件,软链接文件是新建文件。 硬链接只能出现在文件系统内,硬链接文件可以在文件系统内随意移动。软链接可以跨文件系统创建,软链接文件不能动,动了就找不到了。 本质上,硬链接文件指向数据,软链接指向节点。 (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐