
本文共 1146 字,大约阅读时间需要 3 分钟。
一、 硬链接:
1. 硬链接的概念:Linux中文件的存储实际分为 数据区域(data block)和元数据区域 (metadata)。元数据包括比如创建时间、修改时间、文件大小、属主、归属的用户组、读写权限、数据所在block号等,其中inode 也是 元数据 的一部分。
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,就是inode,是文件或者目录在一个文件系统中的唯一标识。
使用多个文件名指向同一个inode,这种链接就成为硬链接。( 和 变量名 与 内存地址 的关系异曲同工)
2. 硬链接的特性:
① 只能对已经存在的文件进行创建,不能交叉文件系统,不能对目录进行创建。(只限同一文件系统中的普通文件)
② 只要文件的索引节点还有一个以上的链接,只删除其中一个链接并不影响索引节点本身和其他的链接。只有当最后一个链接被删除后,当有新数据要存储到磁盘上时,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。这样就允许一个文件拥有多个有效路径名,用户就可以建立硬链接到重要的文件,防止“误删”源数据。
3. 硬链接的创建:ln -d filename link (无选项默认创建硬链接)
对 filea 创建一个硬链接 fileb
发现 filea 与 fileb 指向同一个 inode
删除其中一个硬链接,不影响文件数据
PS:一般情况下,目录的 link 数 = 子目录数 +2 (包括.和..)
二、 软链接:
1. 软链接的概念:软链接也叫符号链接,类似于windows系统中的快捷方式。
软链接就是一个普通文件,用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建。软链接有着自己的 inode 号以及用户数据块。
2. 软链接的特性:
- 软链接有自己的文件属性及权限等
- 可对不存在的文件或目录创建软链接
- 软链接可交叉文件系统;
- 软链接可对文件或目录创建;
- 创建软链接时,链接计数不会增加;
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接,若被指向路径文件被重新创建,死链接可恢复为正常的软链接。
3. 软链接的创建:ln -s filename link
一旦建立了符号连接,删除操作删除的是符号连接文件,其它所有操作都将访问符号连接所引用的文件。
对 filea 建立一个软链接 text.link
可以看到 text.link 指向文件 filea
如果有安装桌面程序,将 link 文件移动到桌面,即可像 windows 上一样双击打开
发表评论
最新留言
关于作者
