04 硬链接和软连接
1 ln 命令
命令含义
命令名称:ln
英文原意:make links between file
所在路径: /usr/bin/ln
- 执行权限: 所有用户
- 功能描述: 在文件之间建立链接
命令格式
ln [选项] 源文件 目标文件
命令选项
选项 | 含义 |
---|---|
-f | 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件 |
-s | 建立软链接,如果不加上 "-s" 选项,则建立硬链接文件 |
2 inode
Linux 系统内部是通过 inode 即节点索引来识别文件。我们通过文件名打开文件,只是表像。实际系统会按照如下去做。
1.系统是先找到这个文件名对应的 inode 号码, 2.通过 inode 号码获取 inode 信息, 3.然后根据 inode 信息获取文件数据所在的block,读取数据。
3 软链接
软链接也叫符号链接 (symbolic link),符号链接是指通过创建一个特殊类型的文件来起作用,该文件包含了指向引用文件或目录的文本指针,与windows系统下的快捷方式非常相似。
将内容写进符号链接里,那这些内容也会同样写入引用文件。
而当删除一个符号链接的时候,删除的只是符号链接而没有删除文件本身。而如果先删除了文件,该链接依旧存在,却不会指向任何文件。但是你打开该链接,就会报错“NO such file or directory”
软链接的两个文件的 inode 号码是不一样的
4 硬链接
硬链接,可以想象文件是由两部分组成的,一部分是文件内容,另外一部分是文件名称。创建硬链接时,实际上是创建了额外的名称,这些名称都指向了同一数据部分。系统会分配一系列的盘块给所谓的索引节点( inode ),该节点随后与文件名称建立关联。因此,每个硬链接都指向包含文件内容的具体索引节点。
可以用不同的文件名访问同样的内容
对其中一个文件内容修改时,会影响到其他文件的内容。
删除其中一个文件时,其他文件可以正常访问,不受影响
5 硬链接和软连接区别
硬链接 inode 号码一致,软连接相反。
硬链接读的内容是不同文件的内容,软连读的是源文件的内容。
硬链接不能引用目录。软链接即可以是文件也可以是目录。