linux系统有有软连接和硬连接两种,所谓软连接相似于windows系统中的快捷方式,源文件若是被删除,软连接将失败。而硬连接则不一样,即便源文件被删除,文件依旧存在,这是为何呢?下面我就为你们简单说明一下其中的缘由:
node
软连接:linux
这是我画的一张linux存储文件的简易图,软连接的链接道理是,在inode表中,存放指针位置并不是是指针,而是存放着一个文件的元数据路径,经过路径找到文件元数据,再找到文件自己。例如:/root/1为原文件,/root/2为软连接文件windows
第一行为inode号,这两个文件拥有不一样的inode号,2文件的文件大小为1字节,这一个字节中写的是“1”,也就是链接文件的名字,若是链接文件的名字叫123,那此处就会是3个字节。ide
软连接的特色:spa
软连接有本身的文件属性及权限等;指针
可对不存在的文件或目录建立软连接;orm
软连接可交叉文件系统;blog
软连接可对文件或目录建立;get
建立软连接时,连接计数 i_nlink 不会增长;it
删除软连接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死连接(即 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 : 显示版本