您的位置:首页 > 运维架构 > Linux

对linux硬链接和软链接理解

2016-07-30 13:14 183 查看
linux系统有有软链接和硬链接两种,所谓软链接类似于windows系统中的快捷方式,源文件如果被删除,软链接将失败。而硬链接则不同,即使源文件被删除,文件依旧存在,这是为什么呢?下面我就为大家简单说明一下其中的原因:




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



第一行为inode号,这两个文件拥有不同的inode号,2文件的文件大小为1字节,这一个字节中写的是“1”,也就是连接文件的名字,如果连接文件的名字叫123,那此处就会是3个字节。
软链接的特点:
软链接有自己的文件属性及权限等;

可对不存在的文件或目录创建软链接;

软链接可交叉文件系统;

软链接可对文件或目录创建;

创建软链接时,链接计数 i_nlink 不会增加;

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

硬链接:
硬链接的道理是,不同的文件拥有同一个的inode号码,一个inode号码可以拥有不同的文件名,但所保存的数据只有一份。如果其中的一个文件名被删除,仅仅是切断文件名和inode号的关联,对其他链接和数据并不造成影响。



这两个文件拥有相同的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 : 显示版本
本文出自 “zebra930” 博客,请务必保留此出处http://zebra930.blog.51cto.com/11736340/1832014
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: