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 号码一致,软连接相反。

  • 硬链接读的内容是不同文件的内容,软连读的是源文件的内容。

  • 硬链接不能引用目录。软链接即可以是文件也可以是目录。

results matching ""

    No results matching ""