对linux硬连接和软连接理解

linux系统有有软连接和硬连接两种,所谓软连接相似于windows系统中的快捷方式,源文件若是被删除,软连接将失败。而硬连接则不一样,即便源文件被删除,文件依旧存在,这是为何呢?下面我就为你们简单说明一下其中的缘由:
node

wKioL1ecKjiA4zXKAARNO-dL4vQ029.jpg

软连接:linux

这是我画的一张linux存储文件的简易图,软连接的链接道理是,在inode表中,存放指针位置并不是是指针,而是存放着一个文件的元数据路径,经过路径找到文件元数据,再找到文件自己。例如:/root/1为原文件,/root/2为软连接文件windows

wKioL1ecMnqRFQwbAAAIwJpbTVE950.png

第一行为inode号,这两个文件拥有不一样的inode号,2文件的文件大小为1字节,这一个字节中写的是“1”,也就是链接文件的名字,若是链接文件的名字叫123,那此处就会是3个字节。ide

软连接的特色:spa

  • 软连接有本身的文件属性及权限等;指针

  • 可对不存在的文件或目录建立软连接;orm

  • 软连接可交叉文件系统;blog

  • 软连接可对文件或目录建立;get

  • 建立软连接时,连接计数 i_nlink 不会增长;it

  • 删除软连接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死连接(即 dangling link,若被指向路径文件被从新建立,死连接可恢复为正常的软连接)。



硬连接:

硬连接的道理是,不一样的文件拥有同一个的inode号码,一个inode号码能够拥有不一样的文件名,但所保存的数据只有一份。若是其中的一个文件名被删除,仅仅是切断文件名和inode号的关联,对其余连接和数据并不形成影响。

wKiom1ecNe_ShJQ7AAAHZoOPmo8412.png

这两个文件拥有相同的inode号,包括权限大小也都相同,这就是硬连接。

硬连接的特色:

  • 文件有相同的 inode 及 data block;

  • 只能对已存在的文件进行建立;

  • 不能交叉文件系统进行硬连接的建立;

  • 不能对目录进行建立,只可对文件建立;

  • 删除一个硬连接文件并不影响其余有相同 inode 号的文件。



建立软连接的方法:

    ln -s TARGET LINK_NAME


建立硬连接的方法

    ln TARGET LINK_NAME


        -f : 链结时先将与 dist 同档名的档案删除
  -d : 容许系统管理者硬链结本身的目录
  -i : 在删除与 dist 同档名的档案时先进行询问
  -n : 在进行软连结时,将 dist 视为通常的档案
  -s : 进行软链结(symbolic link)
  -v : 在连结以前显示其档名
  -b : 将在链结时会被覆写或删除的档案进行备份
  -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
  -V METHOD : 指定备份的方式
  --help : 显示辅助说明
  --version : 显示版本

相关文章
相关标签/搜索