1、遇到这样一个问题:想修改/etc/rc.local文件,ls -lh一下发现有这样一个软链接 /etc/rc.local -> rc.d/rc.local,有这样的疑问,修改链接文件或者原文件,都会同步,那这样,如果我修改的时候要删除文件,然后再把wget回来,这种情况下,拿链接文件入手跟原文件入手,有没有什么区别?
做如下尝试:
a.先从原文件入手:
步骤:删除原文件后,ll 一下链接文件发现:链接并没有消失,只是一直在报警原文件不在,也就说明了一个,软链接可以链接空文件,如下如所示:
从其他主机wget rc.local文件回来后,软链接自动重新建立,同时链接文件将以“新”原文件内容同步:
结论:删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
b.从链接文件上入手:删除链接文件/etc/rc.local后,从其他主机wget下来,发现:软链接不会自动建立,即删除链接文件后,软链接相应的也被删除了。
不仅如此,软链接拥有自己的文件属性及权限,即跟原文件不一样的权限和属性
软链接中,链接文件的i节点跟原文件的i节点不一样,链接文件通过自己的i节点找到原文件的i节点,再通过原文件的i节点找到数据:
使用软链接中,原文件使用绝对路径,否则,原文件与链接文件要在同一目录下: