软连接和硬连接到底有啥做用和区别(转)

前言:在网上搜索了很久,看了不少博客,某度知道等等。关于软硬连接的解释都太模糊,还有什么i节点,跨分区根本弄不明白,在查阅了书籍和询问老师后决定本身写一篇简单的博文,然初学者都可以明白的博文。linux

一 创建软连接和硬连接的语法

软连接:ln -s 源文件 目标文件 
硬连接:ln 源文件 目标文件 
源文件:即你要对谁创建连接windows

二 什么是软连接和硬连接

1,软连接能够理解成快捷方式。它和windows下的快捷方式的做用是同样的。 
2,硬连接等于cp -p 加 同步更新。spa

为了方便说明,我在根分区(/)下创建test文件夹,而后新建了一个jys文件 
这里写图片描述 
创建软连接和硬连接: 
这里写图片描述操作系统

区别: 软连接文件的大小和建立时间和源文件不一样。软连接文件只是维持了从软连接到源文件的指向关系(从jys.soft->jys能够看出),不是源文件的内容,大小不同容易理解。 
硬连接文件和源文件的大小和建立时间同样。硬连接文件的内容和源文件的内容如出一辙,至关于copy了一份。 
这里写图片描述.net

可是简单的copy的文件建立文件的时间应该是复制文件时的时间,确定不会像硬连接那样和建立源文件的时间相同。你想的没错。 
这里写图片描述 
可是只要加一个选项-p,时间就同样了 
这里写图片描述 
这里写图片描述 
那么cp -p的文件是否是就至关于硬连接了呢?其实否则,对于源文件的内容有修改,硬连接文件会同步更新修改,始终保持和源文件的内容相同,而复制的文件则不可能作到这一点。 
这里写图片描述 
因此,硬连接等于cp -p加同步更新。 
软连接像快捷方式,方便咱们打开源文件,这一点在windows中深有体会,那硬连接有哪些应用呢? 
在多用户的操做系统里,你写一个脚本,程序等,没有完成,保存后等下次有时间继续写,可是其余用户有可能将你未写完的东西当成垃圾清理掉,这时,你对你的程序,脚本等作一个硬连接,利用硬连接的同步更新,就能够方式,别人误删你的源文件了。3d

三,删除源文件多软连接和硬连接的影响

这里写图片描述 
查看软连接文件,查看的文件不存在。和windows同样,删除源文件,快捷方式也用不了。可是删除源文件,为何硬连接文件还能够查看呢? 
这里要简单说下i节点了。i节点是文件和目录的惟一标识,每一个文件和目录必有i节点,否则操做系统就没法识别该文件或系统,就像没有上户口的黑户。linux操做系统是不识别些字母的,像这些jys ,jys.hard操做系统根本不知道是什么玩意。 
这里写图片描述 
能够看出硬连接文件和源文件i节点号相同,而且一个i节点能够对应多个文件名。 
这里写图片描述
如图,删除了jys,只是删除了从920586到jys的映射关系,不影响它和jys.hard的映射关系。此图也解释了硬连接的同步更新,对源文件修改,操做系统只认i节点,因而操做系统就将修改内容写进全部i节点相同名字不一样的文件。写到这里我突发奇想,若是对硬连接文件进行修改那么源文件会不会同步更新呢?留给读者本身试验吧!blog

 

from(gao_zhennan的博客)图片

相关文章
相关标签/搜索