Linux中硬连接(hard link)与软连接(symbolic link)的区别

来源:互联网 发布:java接受formdata 编辑:程序博客网 时间:2024/06/05 15:10

Linux Ext文件系统

Linux的Ext文件系统是如何与磁盘内存产生对应的呢?我们知道,在使用磁盘内存之前,需要为磁盘分区,然后为所分区域格式化出一个统一的文件系统(也有例外,如LVM与磁盘阵列技术)。那么,在这样一个统一的文件系统中,根据数据的不同,就可以将内存分为以下3种类型:

  • inode 记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码
  • block 实际记录文件的内容,如果文件太大,则会占用多个block
  • super block 记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等

因此对于一个文件来说,它的inode号就类似于id的作用,用于存放关于该文件的一些基本信息。


若两个文件,拥有同样的inode,那么就产生了所谓的硬连接。以下基于VirtualBox Ubuntu操作系统来进行试验,使用本地的Cygwin ssh远程连接到虚拟机。

1、首先创建文件a,并查看其属性
创建查看a

2、创建a的硬连接b(使用ln命令),并查看a和b的属性
创建查看b
可以发现,a和b的属性完全一致,注意其中第二列数字表示的就是该文件的硬连接数

3、对于硬连接来说,它的好处就是“安全”。你将其中任何一个文件名删除(rm -f),文件都是存在的,因为文件的inode一直存在。
删除a
并且由于两个文件都是对应的相同的inode和block,因此对任何其中一个进行修改编辑,结果都会生效。

4、此时倘若在创建名称为a的文件,会有什么影响吗?
重新创建a
可以看到,此时此刻,重新创建的a和b并没有任何关系,不存在硬连接关系。


软连接的意义就如同windows平台下的快捷方式,它是一个类型为l的文件,拥有自己的inode和block,对它进行操作也相当于对被link文件进行操作。

1、创建文件a,并创建其软连接b
创建软连接

2、为a写入一些数据,然后查看b的内容。删除a,再查看b的内容。
操作
发现b连接失效了

3、重新创建文件a,然后查看b的内容。
重新创建
发现b重新连接成功了,并且连接至了原来同名的a文件。


总结

换言之,对于硬连接来说,共享的是inode,重新创建的同名文件不具有相同的inode,因此于原来毫无干系。而对于软连接来说,它连接记录的是一个文件的绝对路径,因此当重新创建同名文件时候,软连接又重新生效了。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果平板微信屏幕不是全屏怎么办 大冒险告白被接受了怎么办在线阅读 手机屏锁图案密码忘了怎么办 opp手机锁屏密码忘了怎么办 宝宝的玩具里面脏了洗不到怎么办 早上起来眼睛被眼屎粘住了怎么办 魔兽世界神器满级任务放弃了怎么办 魔兽世界神器满级任务没接到怎么办 情侣空间上的照片删了怎么办 微信好友群群主把你踢出房间怎么办 我被车撞了对方把现场破坏该怎么办 美术生专业分可以文化分不行怎么办 小狗又吐又拉不吃东西怎么办 狗狗把脖子挠破了怎么办 几分钟我的手机疯狂收到短信怎么办 初中孩子沉迷动漫及画动漫画怎么办 打仗在派出所保释出来人跑了怎么办 贴门槛石瓷砖贴多了要怎么办 建设银行中职学生资助卡丢了怎么办 建行网银u盾丢了怎么办 深水区换气时喝了口水怎么办 撞到别人车了 我走了 怎么办 自己班同学被自己取好多外号怎么办 刚学会走路的宝宝脚外八字怎么办 宝宝两岁走路膝盖弯曲不直怎么办 一岁多的宝宝走路o型腿怎么办 21个月的宝宝走路o型腿怎么办 宝宝十一个月了0型腿怎么办 14个月宝宝o型腿怎么办 深蹲了三个月大腿变粗了怎么办 脚踢球时被踢肿了变紫了怎么办 没钱去健身房想要练出好身材怎么办 群里有人发反政府视频怎么办 部队取消番号后之前军人档案怎么办 新疆武警黄金部队新兵改革后怎么办 别人偷了自己的东西没有证据怎么办 家里项链被邻居偷了没有证据怎么办 知道是谁偷钱都是没有证据怎么办 武警驾照开地方车被交警拦了怎么办 双手擦了纤体瘦身膏辣疼怎么办 乳房全切术后切口裂开化脓怎么办