linux软连接和硬链接(总结)

巧了我就是萌 提交于 2019-11-27 12:22:27

参考博客:
https://www.cnblogs.com/fengdejiyixx/p/10821820.html
https://www.runoob.com/linux/linux-comm-ln.html
https://www.cnblogs.com/crazylqy/p/5821105.html

需知:

    当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区和data block(实际数据放置在数据区域中)这个inode即是(目录、档案)文件在一个文件系统中的唯一标识,需要访问这个文件的时候必须先找到并读取这个 文件的 inode。 Inode 里面存储了文件的很多重要参数,其中唯一标识称作 Inumber, 其他信息还有创建时间、修改时间 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。

    A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

    A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

创建方式:

        1.软链接(符号链接) ln -s   目标文件  链接名 
        2.硬链接 (实体链接)ln       目标文件  链接名 

主要参数:

        -b 删除,覆盖以前建立的链接
        -d 允许超级用户制作目录的硬链接
        -f 强制执行
        -i 交互模式,文件存在则提示用户是否覆盖
        -n 把符号链接视为一般目录
        -s 软链接(符号链接)
        -v 显示详细的处理过程

区别:

   软链接:

        1.软链接,以路径的形式存在,类似于Windows操作系统中的快捷方式
        2.软链接可以跨文件系统
        3.软链接可以对一个不存在的文件名进行链接
        4.软链接可以对目录进行链接
        5.软链接原文件/链接文件拥有不同的inode号,表明他们是两个不同的文件
        6.当源文件目录改变后,软连接访问不到

   硬链接:

        1.硬链接,以文件副本的形式存在,但不占用实际空间
        2.不允许给目录创建硬链接(可以通过参数添加但仅限root用户)
        3.硬链接只有在同一个文件系统中才能创建
        4.不能对不存在的文件创建硬链接
        5.硬链接原文件/链接文件公用一个inode号,说明他们是同一个文件
        6.当源文件目录改变后,硬连接可以访问

使用场景:

    软连接:
        1.便于文件的管理,比如把一个复杂路径下的文件链接到一个简单路径下方便用户访问。
        2.节省空间解决空间不足问题,某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文                    件系统中的目录链接到该文件系统中。

    硬链接:
        硬链接的作用之一是允许一个文件拥有多个有效路径名,比如备份文件,快照。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!