软连接与硬链接

linux下的软链接类似于windows下的快捷方式。

  实例:
  ln -s httpd.conf confighttp

  其中 httpd.conf 就是源文件,confighttp是链接文件名, 其作用是当编辑confightt,实际上是链接编辑httpd.conf。         

       如果要删除软链接:

  rm -rf confighttp

  这样只会删除confighttp链接文件,而不会删除源文件httpd.conf。

  相对于软连接,还有硬链接,


  建立硬链接命令:

  ln httpd.conf confighttp

  硬链接文件相当于一个文件存储在两个位置,可以有效防止误删。

硬链接(hard link):文件A是文件B的硬链接,则A的目录项中的inode节点号与B的目录项中的inode节点号相同,

            即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。

            如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,

            inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。

注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

软链接(soft link):A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,

            A和B指向的是两个不同的inode,继而指向两块不同的数据块。

            但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。

            A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

原文地址:https://www.cnblogs.com/zqntx/p/11506931.html