-
先说特点
- 软链接是存放另一个文件的路径的形式存在(快捷方式)。
- 硬链接是以文件副本的形式存在。但不占用实际空间(相当与一个文件多个名称)。
- 软链接可以跨文件系统,硬链接不可以。
- 软链接可以对一个不存在的文件名进行链接,硬链接必须要有源文件。
- 软链接可以对目录进行链接, 硬链接只有在同一个文件系统中才能创建。
- 删除其中一个硬链接文件并不影响其他有相同 inode 号的文件。
- 不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
-
再说操作
linux系统可以用ln命令来创建链接文件。
ln命令格式: ln [参数] [源文件或目录] [目标文件或目录]
主要参数:
-i 交互模式,文件存在则提示用户是否覆盖。
-s 软链接(符号链接)。
-d 允许超级用户制作目录的硬链接。
-b 删除,覆盖以前建立的链接 -
创建软硬链接
- 通过软硬链接修改文件
- 删除源文件后观察影响
最后来点转载的大料
https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html
在 Linux 一个文件上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。
用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
元数据,则是文件的附加属性,如文件大小、创建时间、所有者等信息。
在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。
文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。
下图展示了程序通过文件名获取文件内容的过程。