问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux下的软链接和硬链接,文件拷贝的区别

发布网友 发布时间:2022-04-21 23:44

我来回答

1个回答

热心网友 时间:2024-03-09 22:32

硬链接

新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用。

硬链接特征:

1、拥有相同的 i节点 和相同的存储block快,可以看做是同一个文件

2、可通过i节点识别,i节点号相同

3、不能跨分区

4、不能针对目录使用

5、删除文件,硬链接正常使用

软链接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

软链接特征:

1、类似windows快捷方式

2、软链接拥有自己的i节点和block快,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

3、lrwxrwxrwx l软链接,软链接文件权限都为rwxrwxrwx,但具体看原文件的权限

4、修改任意文件,另一个都改变

5、删除原文件,软链接不能使用

6、创建软链接一定要写绝对路径

注意软链接的文件权限为777 但是最终权限有源文件决定 l表示软链接文件。

一旦源文件删除,软链接将不能使用。(这是和硬链接的主要区别)

注:创建软链接时,源文件要始终使用绝对路径,否则,若创建的软链接和源文件不在同一个目录时,会找不到源文件。(硬链接不会有这种情况)

*少,更灵活,推荐使用。

补充:

linux系统中的硬连接有两个*:不能跨越文件系统和不允许普通用户对目录作硬连接。至于第一个*,很好理解,而第二个就不那么好理解 了。 对任何一个目录用ls -l 命令都可以看到其连接数至少是2,这也说明了系统中是存在硬连接的,而且命令ln -d 也可以让超级用户对目录作硬连接,这些都说明了系统*对目录进行硬连接只是一个硬性规定,并不是逻辑上不允许或技术上的不可行。那么操作系统为什么要进 行*呢?答案可能有两个。

先来说第一个,如果引入了对目录的硬连接就有可能在目录中引入循环,那么在目录遍历的时候系统就会陷入无限循环当中。也许您会说,符号连接不也可以引入循 环吗,那么为什么不*目录的符号连接呢?原因就在于在linux系统中,每个文件(目录也是文件)都对应着一个inode结构,其中inode数据结构 中包含了文件类型(目录,普通文件,符号连接文件等等)的信息,也就是说操作系统在遍历目录时可以判断出符号连接,既然可以判断出符号连接当然就可以采取 一些措施来防范进入过大的循环了,系统在连续遇到8个符号连接后就停止遍历,这就是为什么对目录符号连接不会进入死循环的原因了。但是对于硬连接,由于操 作系统中采用的数据结构和算法*,目前是不能防范这种死循环的。

在说明第二个原因之前,先来看看文件的dentry结构在系统空间中长什么样子和它们是怎么存放在系统空间的。dentry结构主要包含了文件名,文件的inode号,指向父目录dentry结构的指针和其他一些与本次讨论无关的指针,这里关键是那个指向父目录的指针;系统中所有的dentry结构都 是按杂凑值存放在杂凑表中的,这里的杂凑算法很重要,它是取文件名和文件的父目录dentry结构的地址一起杂凑运算出杂凑值的。现在假设有两个目录 /a和/b,其中/b是我们通过ln -d命令建立起来的对/a的硬连接。这个时候内核空间中就会存在一个/a的dentry结构和一个/b的dentry结构,由上面的知识可知,/a和/b 目录下面的每一个文件或目录都各自有对应的dentry结构(因为虽然/a目录下面的文件名没有改变,但是因为dentry结构有指向父目录dentry 的指针和计算杂凑值时考虑了父目录dentry结构的地址,这个时候dentry结构就分身乏术了),而且这种继承还会影响到所有子目录下面的文件,这样 下来就会浪费很多系统空间了,特别是如果被硬连接的目录中存在大量文件和子目录的时候就更加明显了。这也许是第二个原因。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找几本一流的小说。类型' 完结什么的无所谓. 不要幼稚就好 沈阳职高学校排名 沈阳哪个公办职高和中专好 沈阳有哪些职高学校比较好? gpw一代和二代的区别有哪些 罗技gpw一代和二代区别介绍 第一代和第二代的区别 gpw二代和一代有什么区别 二代和一代区别详情分享 设张举措的意思设张举措的解释设张举措接龙 设张的成语设张的成语是什么 人字地砖铺法怎么找平方 车上没有手机号怎么挪车 车主没有电话怎么联系让他挪车? 没电话怎么叫别人挪车? 没电话的情况下怎么让别人挪车? Linux操作系统中硬连接和软连接的区别 Linux下软链接和硬链接的区别 Linux软链接硬链接的区别是什么? Linux软硬连接有啥区别? 复式楼单户面积按一层还是按两层计算? 门厅按一层计算建筑面积是什么意思 建筑层数和建筑面积是怎么计算的 建筑工程建筑面积计算规则 一层平面图建筑面积怎么算例题 多层建筑怎么计算建筑面积 买别墅时候算的面积是地基的面积还是每一层加起来... loft的建筑面积是指一层的面积还是两层之和? 请问,18米高的单层厂房,建筑面积是按照一层的计... 单层建筑物建筑面积如何计算? 计算总建筑面积和标准层每层建筑面积 多层建筑物建筑面积计算规范 车主没有电话怎么联系让他挪车 前面车子挡了,怎么叫他挪车,没有电话,找不到人? 车主没留挪车电话怎么才能通知车主挪车 晚点10点之后怎么让他人挪车 被挡住 114 晚上十点... 板栗怎么好剥皮? 怎么通知他人挪车 高一自我评价评语 车子被堵了,没有电话联系车主怎么办? 想要车主挪车不知道联系方式怎么办? 没有挪车电话的情况下,怎么快速找到车主? 让别人挪车打什么电话 栗子怎样好剥皮 中国银联在线支付开通后如何解除 vivo新系统和安卓11? 如何关闭银联在线支付 高中生自我评语怎么写 农行卡怎么关闭银联在线支付 上班时间在工地大门口外面摔伤算工伤吗? 如何关闭银联在线支付? 踏入工地门从此断红尘钞票似浮云,姑娘成路人什么意...