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

Linux中文件与目录对应的硬链接与软链接方式总结

发布网友 发布时间:2022-04-21 01:56

我来回答

1个回答

热心网友 时间:2023-11-04 08:29

硬链接

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

硬链接特征:

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结构就分身乏术了),而且这种继承还会影响到所有子目录下面的文件,这样 下来就会浪费很多系统空间了,特别是如果被硬连接的目录中存在大量文件和子目录的时候就更加明显了。这也许是第二个原因。

Linux中文件与目录对应的硬链接与软链接方式总结

硬链接新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用。硬链接特征:1、拥有相同的 i节点 和相同的存储block快,可以看做是同一个文件2、可通过i节点识别,i节点号相同3、不能跨分区4、不能针对目录使用5、删除文件,硬链接正常使用 软链接另外一种连接称之为符号连...

Linux系统:那些常见的硬链接和软链接

Linux以 / 作为根目录,下设众多子目录,如bin(包含可执行程序)、boot(启动文件)、dev(设备目录)、etc(配置文件)、home(用户个人目录)等,每个目录都有其特定作用。例如,bin下存放系统二进制文件,而home则存储用户的个人文件和目录。硬链接和软链接是Linux中两种链接方式。硬链接(通过ln命令...

彻底明白Linux硬链接和软链接

创建硬链接的命令为 `ln [参数] [源文件或目录] [目标文件或目录]`。硬链接文件与源文件共享内容,修改其一,另一也随之改变。在开发中,当误删文件时,通过创建多个硬链接文件,可以降低数据丢失的风险。与硬链接不同,软链接(符号链接)能够指向任意文件系统中的文件或目录,甚至可以指向不存在的文...

一文弄懂Linux硬链接和软链接

首先,硬链接(Hard Link)是一种通过文件系统的索引节点(Inode Index)实现的链接方式。使用ln命令,只有在同一文件系统内,文件之间才能创建硬链接。一个文件可以有多个硬链接,多个路径名指向同一个索引节点,即使删除其中一个链接,只要源文件或其他链接存在,文件内容就不会丢失。硬链接对目录的创建有...

Linux系统:那些常见的硬链接和软链接

首先,要知道Linux中一切都是文件,根目录(/)下包含了众多重要目录,如bin(存放可执行程序)、boot(启动文件)、dev(设备文件)、etc(系统配置)、home(用户个人目录)、lib(库文件)等,每个目录都有其特定用途。硬链接和软链接的区别在于它们对文件内容的引用方式。硬链接(通过ln命令创建)创建...

linux硬链接和软链接的区别

1.原理上:硬链接(hard link)与软链接(soft link)的区别主要在于其工作原理。硬链接是指,若A是B的硬链接(A和B均为文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,意味着一个inode节点对应两个不同的文件名,这两个文件名指向同一个文件。在这种情况下,A和B对文件...

Linux 中软链接和硬链接的区别 | Linux 中国

软链接(符号链接,Symbolic Link,或称软链接)是一种特殊类型的文件,它链接到系统中的另一个文件或目录,类似于Windows中的快捷方式。软链接并不保存原始文件的内容,只记录路径信息,常用于库文件链接、日志文件共享和NFS网络目录。相比之下,硬链接(Hard Link)则是原始文件的一个独立副本。即使删除...

linux中硬链接和软链接的区别

3、创建方式不同 硬链接不能对目录进行创建,只可对文件创建;软链接可对文件或目录创建;4、影响不同 删除一个硬链接文件并不影响其他有相同inode号的文件。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即danglinglink,若被指向路径文件被重新创建,死链接...

【Linux】Linux系统硬链接和软链接

在 Linux 系统中,链接文件扮演着共享文件的角色,分为硬链接(Hard Link)和软链接(Symbolic Link)两种类型。要识别系统中的链接文件,需查看文件权限位,以'l'标识的即为链接文件。硬链接是通过索引节点(Inode)实现的,每个文件或目录在 Linux 文件系统中都有唯一的Inode号。多个文件名指向同一Inode...

linux中符号“软链接”和“硬链接”

在Linux中,"软链接"和"硬链接"是两种实现文件共享的方式,虽然在表面上使用体验相似,但它们在底层原理上有所不同。让我们通过实例来直观理解它们的区别。Linux的文件系统中,每个文件都有一个索引节点号(inode),这是其在磁盘上的唯一标识。链接,无论是软链接还是硬链接,都可以看作是文件的另一种...

目录怎么链接对应的页数 怎么弄目录与正文对应 如何将目录与内容对应 怎么将目录与页码对应 文件目录格式 如何让目录和页码一一对应 目录跟页码不对应 目录对应页码怎么设置 文件目录怎么做
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? linux系统如何挂载硬盘并拷贝到某个目录下? Linux系统中如何克隆系统 如何操作linux电脑的系统,由旧硬盘直接全部复制至新硬盘? linux系统磁盘复制错误,我该怎么办? LINUX系统如何硬盘对拷! linux系统如何挂载硬盘并拷贝到某个目录下? 如何对linux系统的机器进行硬盘克隆(备份) 要求把所有东西都克隆出来 换硬盘,linux系统怎么迁移到新硬盘比较好 我如何对linux操作系统的机器进行全硬盘的拷贝呢? linux 系统的硬盘怎么克隆? linux怎么克隆硬盘 如何将linux从一个硬盘复制到另一个硬盘 linux系统下的硬盘复制方法 Word2007如何合并单元格时只合并同行的单元格 茄子种植时间, 茄子对栽培季节有何要求? 茄子是不是一年四季都可以种? 茄子什么季节播种?怎么种?一棵茄子能长出多少果实? 茄子什么时候种 茄子什么时候播种,茄子种植时间和方法 linux备份恢复备份的linux恢复 如何在WINDOWS下复制LINUX硬盘(带系统) 如何用linux命令从U盘复制文件到硬盘? linux系统如何做硬盘对拷 404 Not Found 有知道怎样删除掉支付宝上多余的卡号吗? 怎么删除支付宝这个对方人员的对方人名和哪个银行银行卡号 支付宝内绑定的多余帐号咋删除? 怎么解除支付宝关联的帐号 支付宝绑定的银行卡号怎么更改 高分求婚礼上放的歌曲 有什么劲爆的歌曲适合作婚礼开场曲 结婚现场的歌曲有那些 婚礼仪式前轻快甜蜜的歌曲 我要制作婚礼盘,大家给推荐几首歌曲呀!!! 求几首能说得上歌名的 超级劲爆的 纯音乐 或者英文歌 适合婚礼开场的 要超级劲爆的哦 适合结婚用的英语歌曲,婚礼背景音乐??? 有哪些劲爆的流行歌曲? 有哪些劲爆的歌曲