Linux中软连接PK硬连接之简单总结


  在Linux中,经常看见软连接和硬连接的说法,尤其是软连接更是比较多,可一直都不是很明白,今天在网上查了一下,很多人也和我一样,正处在郁闷中,哈哈,过于深入的东西没有研究,在使用的层面上对这两个东西做一个简单的总结,方便了自己记忆,也给其他处在郁闷中的兄弟姐妹一点帮助,有什么问题也欢迎大家指正,哈哈。

  先说软连接,一个认为这个比较好理解,一个也是因为柿子专挑软的捏啊,哈哈,创建一个软连接的命令: 【ln -s 源文件名 软连接文件名】,使用ls命令查看文件信息可以验证一下,对文件和目录都可以创建软连接,在网上看到很多人说快捷方式这个比喻,个人认为比较形象,创建一个软连接就是给指定的文件创建了一个快捷方式,里面只记录一个源文件的路径,使用的时候其实就是间接的使用源文件,不考虑具体的实现,从使用的层面上就这么简单。如果源文件删除了,这个软连接也就没有什么用了,因为他记录的路径下面已经没有文件或文件夹了,效果就和windows下面的exe都没有了,你双击快捷方式的效果一样,正因为软连接只是记录一个路径,所以他可以跨文件系统使用。

  再说硬连接,创建一个硬连接的命令: 【ln -d 源文件名 硬连接文件名】。在Linux里面访问的每个文件都有一个inode结点的东西,在这个东西里面有一个连接计数,软连接的时候不涉及这个东西,如果对一个文件创建一个硬连接,则这个文件对应的inode的连接计数就加1,这个时候其实这个inode对应的文件有两个名称可以进行访问,这两个名称现在是一样的,你可以使用任意一个继续创建硬连接,所以创建的硬连接和源文件是一样的,共享同一个inode,如果删除了一个则连接计数就减1,删不删除文件是根据连接的计数值来确定的,如果为0了,就删了,否则,删除只是连接计数减1。硬连接不能跨文件系统创建,并且只能对文件创建,不能对目录创建硬连接。

  对于读写软连接和硬连接一样,都是操作同一个文件,本来还想做几个图说明说明,弄了半天也没有弄上来一个,哈哈,所以就不好意思了,将就看看!

相关内容