linux 为什么要用硬连接

来源:互联网 发布:阿里云服务器如何建站 编辑:程序博客网 时间:2024/06/10 23:34
linux 为什么要用硬连接
----------------------------------------
author:hjjdebug
date: 2017年 12月 15日 星期五 09:46:44 CST
----------------------------------------
软连接是符号,是路径.是连接

硬连接是别名.是主体,无路径信息.其实它不是连接.

软连接有主次, 硬连接无主次.

看的懂吗? 看的懂就不用看了,看不懂继续.
用linux有不少年头了,一直不太关心什么软连接,硬连接.当真要用到连接的时候,
也都是一直用软连接,相当于windows下的快捷方式,
windows没有硬连接,不是存在的也挺好!?  似乎硬连接就没有存在的必要.
直到这次事件,才让我认识到,硬连接有其存在的必要.
公司里有三个项目,三个项目都会包含第三方执行文件,用这个文件来获取外部数据.
这个执行文件在调试,打包时被加入工程.
这个执行文件不定期会更新,当合作人发来这个文件时,我不得不从email上下载这个文件,分别覆盖项目中的三个文件,
但问题是往往由于种种原因,我覆盖了这个,却忘了那个, 而且三次copy 文件,也确实是很无聊的事情!
于是我想到了连接, 把这个执行文件copy 到一个地方,三个项目中都建立这个文件的软连接.
看起来似乎不错,打包发布不受影响,
但是有一个小问题,如果第三方文件更新了,由于软连接并没有跟改, svn 感觉不到它的变化!,这个倒还可以忍受.
有一个更大的问题, 我会把项目目录影射成nfs文件,方便我调试,
但是当映射成nfs后,这个软连接不能执行了,为什么,因为它找不到目标文件了.

是的,这就是硬连接出场的地方,用硬连接完美解决了这个问题. 这样实现一处更改,三处受用的目的.

而且这三个地方是对等的,你随便更改哪个地方,其它地方都同步改动, 是的,linux硬连接就这么神奇!


如果三个项目都共用相同的文本文件, 也要用硬连接, 这样,编译器能够感知文件的变化,

能够实现一处更改,多处受用的目的. 哎!早知如此,我的三个项目的某些文件,也不至于形成类似的不同版本了!!

现在想把他们合并,也懒得做了.



既然硬连接这么好,是不是我们就不用软连接而都用硬连接呢? 也不是, 软连接可以跨文件系统而硬连接不能.
软连接可以为目录建立连接而硬连接不行(或不建议这样做). 具体原因这里就不说了.

last word: 连接是为了解决文件共享问题!