葵司JAVA25_Linux中的硬链接和软链接

Linux中的文件有两种数据:

用户数据

元数据(metadata)

用户数据就是数据block。

元数据包含inode、用户名、时间,大小等信息。

其中inode是文件的唯一标识。

//创建一个硬链接

ln 葵司.avi Java学习第一课.avi

//查看一下文件的信息

1048578 -rw-r--r-- 2 root root 0 Feb 24 03:04 Java学习第一课.avi

1048578 -rw-r--r-- 2 root root 0 Feb 24 03:04 葵司.avi

//这两个文件的inode号一样,根据上面的定义,实际上是一个文件

//这里我们举个例子来说明一样

//孙悟空有很多名字,比如说,孙行者,齐天大圣,弼马温

//当年如来把孙悟空压在了五指山下时候

//孙行者,齐天大圣,弼马温都在五指山下

//因为它们都是孙猴子的名字

//所以,这里我们对葵司.avi写入一些东西,那么看Java学习第一课.avi也应该会出现一样的内容

vi 葵司.avi #写入1234

more Java学习第一课.avi

#1234

//现在菩提老祖说,你弃道从佛,孙悟空这个名字你就不要用了。

//那么现在。孙猴子是不是死了,从世界消失了。

//显然没有,只是名字少了一个而已。

rm 葵司.avi

ls -il

#1048578 -rw-r--r-- 1 root root 5 Feb 24 03:13 Java学习第一课.avi

1048578这个还在,说明文件还在。

//Linux删除具体的机制是什么呢?

//文件接删除的时候,系统调用会检查inode link count的数值,

//如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除。

//原来inode link count是2

//删掉一个还剩1,所以文件内容不会被删除,数据块还在

29b6140fb8ec5e7cc9106aa4a6aae199.png

上图是通过文件名查看文件内容的方式,先文件名,然后是其inode,然后找到inode索引的数据块。

//创建一个软链接

ln -s 葵司.avi 葵司quick.avi

ls -li

#1048578 -rw-r--r-- 2 root root  5 Feb 24 03:13 Java学习第一课.avi

#1048578 -rw-r--r-- 2 root root  5 Feb 24 03:13 葵司.avi

#1048589 lrwxrwxrwx 1 root root 10 Feb 24 03:30 葵司quick.avi -> 葵司.avi

发现inode号变了,我们知道inode号是文件的唯一标识。

inode号一变,就说明是一个全新的文件

756d09d893dbe0d7e694bd3f7675e155.png

软链接文件找到inode,然后找到数据块

数据块里面存的是原文件的信息

再通过原文件找到原文件的inode号。

所以如果删了原文件,那么根据这个文件建立的软链接也将会失效了。

rm 葵司.avi

more 葵司quick.avi

#more: stat of 葵司quick.avi failed: No such file or directory

最后是一些总结:

硬链接:

文件有相同的 inode 及 data block;

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

不能交叉文件系统进行硬链接的创建;

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

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

软链接:

软链接有自己的文件属性及权限等;

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

软链接可交叉文件系统;

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

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

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

硬链接由于不生成新文件,不现实原文件路径(只能通过inode去找),所以安全,节省空间。

但是我们一般使用的时候,还是软链接多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值