linux软连接和硬链接(总结)
Posted vinic-xxm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux软连接和硬链接(总结)相关的知识,希望对你有一定的参考价值。
参考博客:
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号等信息。
硬链接(hard link):
A是B的硬链接(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仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
创建方式:
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.节省空间解决空间不足问题,某个文件文件系统空间已经用完了,但是现在必须在该文件系统下创建一个新的目录并存储大量的文件,那么可以把另一个剩余空间较多的文 件系统中的目录链接到该文件系统中。
硬链接:
硬链接的作用之一是允许一个文件拥有多个有效路径名,比如备份文件,快照。
以上是关于linux软连接和硬链接(总结)的主要内容,如果未能解决你的问题,请参考以下文章