一、linux文件管理特性
linux的文件都有文件名和数据。
数据被分成2部分:用户数据(user data)与元数据(metadata)。
用户数据:即文件数据块(data block),数据块是记录文件真实内容的地方。
元数据:文件的附加属性,如文件大小、创建时间、所有者等信息。
在linux中,元数据中的inode号(即索引节点号。inode号是文件元数据的一部分,但其并不包含文件名)才是文件的唯一标识,而文件名并不是文件的唯一标识。
文件名仅是为了方便人的记忆和使用,而系统或程序是通过inode号找正确的文件数据块的。
二、为什么会有链接文件
为解决文件的共享使用,Linux 系统引入了链接,链接为Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。
创建链接文件可以给文件和目录创建替代名或别名。
三、链接文件的分类
-
硬链接 (hard link)
ln source_file target_file ln -P source_file target_file // 建立硬链接
-
软链接(soft link;又称符号链接,即symbolic link)
ln -s source_file target_file // -s:建立软链接
四、硬链接
若一个 inode 号对应多个文件名,则称这些文件为硬链接。
换言之 ,硬链接就是同一个文件使用了多个别名。
当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数会少1个。
硬链接具有以下几点特性:
- 文件有相同的inode及data block,仅文件名不同
- 只能对已存在的文件进行创建
- 不能交叉文件系统进行硬链接的创建,只能在同一个文件系统来链接文件
- 不能对目录进行创建,只能对文件创建
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件
五、软链接
若文件用户数据块中存放的内容是另一文件的路径名的指向(像windows中的快捷方式一样),则该文件就是软链接。
软链接就是一个普通文件,它有自己的文件属性及权限等。
软链接具有以下几点特性:
- 软链接有着自己的 inode 号以及用户数据块(data block)
- 可对文件或目录进行创建
- 也可对不存在的文件或目录进行创建
- 可交叉文件系统进行创建,可在不同的文件系统来链接文件
- 创建软链接时,链接计数不会增加
- 建立了软链接后,软链接文件的大小是指向的目标文件的文件名的大小。
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link);若被指向路径文件被重新创建,死链接可恢复为正常的软链接。