什么是硬链接文件和软链接文件|Linux中硬链接文件和软链接文件有什么区别

|

『壹』 linux中硬链接和软链接的区别

为解决文件的共享使用,Linux系统引入了两种链接:硬链接和软链接。在Linux中,元数据中的inode号才是文件的唯一标识而非文件名,文件内容要通过inode号来寻找,犹如交通指示牌一样,指示着数据找寻的方向。硬链接(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的目录项中的inode节点号与B的目录项中的节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名。A和B之间是主从关系,如果B被删除了,A依然存在,但指向的是一个无效的链接。Linux中软链接和硬链接之间有什么区别和联系?概念不同:软链接可以理解成快捷方式,和源文件的inode号不一样,它和Windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向。硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名。用法不同:软链接可以理解成快捷方式,也清楚知道原文件在哪里。它和Windows下的快捷方式的作用是一样的,和Windows一样,删除源文件,快捷方式也就无法使用了。硬链接可以看成一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用问题;同时也有局限性,不能对目录和跨文件系统使用。语法格式(ln):硬链接:ln 源文件 链接名软链接:ln -s 源文件 链接名注意:链接的源文件路径要写绝对路径,否则会报错。

『贰』 linux中软链接和硬链接的区别与小结

硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由命内令 link 或 ln 创建,如:link oldfile newfile ln oldfile newfile由于硬链接是容有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。硬链接不能对目录进行创建,只可对文件创建。软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。ln -s old.file soft.linkln -s old.dir soft.link.dir加-s选项表示创建的是软链接。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

『叁』 Linux中硬链接和软链接的区别

硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由命令 link 或 ln 创建,如:link oldfile newfile ln oldfile newfile由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。硬链接不能对目录进行创建,只可对文件创建。软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。ln -s old.file soft.linkln -s old.dir soft.link.dir加-s选项表示创建的是软链接。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

『肆』 链接文件中硬链接和软链接到底有啥区别

硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。硬链接可由命令 link 或 ln 创建,如:12link oldfile newfile ln oldfile newfile由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。硬链接不能对目录进行创建,只可对文件创建。软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。ln -s old.file soft.linkln -s old.dir soft.link.dir加-s选项表示创建的是软链接。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。

『伍』 文件的软链接与硬链接的概念与特性

咨询记录 · 回答于2021-12-03

『陆』 简述软链接和硬链接的区别是什么

硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用.软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件.下面详细介绍一下硬链接和软连接之间的区别.1.硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。2.若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。3.由于符号链接的特性,导致其可以跨越磁盘分区,但硬链接不具备这个特性.在网上搜的。

『柒』 Linux中硬链接文件和软链接文件有什么区别

linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同:1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。软链接类似windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4k,即一个block的大小。3.硬链接不能给目录做,不能跨分区做。软链接则都可以。创建硬链接命令:lnfilefilenew#file为原文件名,filenew为新文件名。创建软链接命令:ln-sfilefilenew#file为原文件名,filenew为新文件名。

『捌』 如何给被windows洗脑的人解释硬链接和软链接

这是为了向熟悉windows而没有接触过linux的同学解释软文件系统软链接硬链接而准备的一些材料收集。若有错误或不详之处欢迎指出,材料很零散,还需要进一步加工,加工方法也望各位不吝赐教。软链接(又叫符号链接)就基本等同与windows下的快捷方式,软链接也是一个文件,而文件的内容是指向另一个文件,windows下的快捷方式也是这。若在windows下观察的话,快捷方式都是.lnk文件,如果资源管理器显示不出.lnk后缀名,可以使用cmd下dir或ls显示一下,就可以看到那些快捷方式文件。linux下的软链接也是一个文件,文件的内容又指向了另外的文件。硬链接再wondows下的基本对应之物就是NTFS下的fsutil hardlink. 另外windows下有个subst将文件夹映射为磁盘,我认为这样的文件下的文件和硬链接很像。硬链接是指向节点iNode,软链接是指向文件路径path。从文件系统分区讲,一个文件由iNode、文件内容数据和目录项(文件名)组成,创建硬链接就是对 一组iNode和数据传建新的目录项(文件名),iNode和目录项的关系是 每有一个目录项指向这个iNode,iNode中的引用计数就会+1,没删除一个目录项则计数-1,若计数减到0了这个文件就可以完全擦除了。软链接本身是一个文件,文件的内容是指引文件系统到达另外一个文件路径,软链接不会对目标文件的iNode引用计数产生影响,而甚至可以传建软链接指向这个软链接文件自身。若软链接的目标路径已经被删除,也不影响该软链接文件的存在,但是它断链了。等效于windows下一个失去目标文件的快捷方式。我猜想若一个程序通过软链接打开了一个文件,实际上操作系统会在该程序使用的资源里记录它打开了两个文件,分别是软链接文件和正真目标文件,希望懂行的同学指点下。linux下删除文件可以不使用rm而使用unlink,实际上unlink更本源。为什么有了硬链接 还要有软链接?(这个就类似于为什么在windows下是使用subst命令映射磁盘或junction映射目录一样之外还要有快捷方式一样。)硬链接和软链接都存在不同的局限性。硬链接不能跨文件系统,因为指向同一个iNode,这是在一个文件系统分区内才可以做的事情。而软链接没有这个限制,可以跨文件系统传建软链接,甚至为网络上的文件传建软链接。因为硬链接是iNode层面的东西,所以不能为文件夹传建硬链接。但是可以却可以创建软链接。为一个文件传建硬链接,其实类似于给这个文件传建别名,只是类似而不是完全等同是因为 这两个名字之后其实分不清谁是第一个原始的文件名谁是后起的别名,这两个甚至多个名字是完全等同的。创建硬链接和拷贝的关系?创建硬链接没有在磁盘上创建新的文件,而只是同一个文件拥有了两个或多个文件名,操作任何一个文件名都是操作这同一个文件。而拷贝确实整整正正在磁盘上把这个文件复制了一边,从此这两个文件在最初是一样的,而之后更改任何一个都与另外一个没有关系。

『玖』 linux硬链接和软链接的区别

在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。 ①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。 ②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同, ③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。 ④删除软链接文件,对源文件和硬链接文件无任何影响。 ⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。 ⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。 ⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。 ⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。 ⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

『拾』 软连接和硬链接的区别是什么

硬链接:新建的文件是已经存在的文件的一个别名,当原文件删除时,新建的文件仍然可以使用.软链接:也称为符号链接,新建的文件以“路径”的形式来表示另一个文件,和Windows的快捷方式十分相似,新建的软链接可以指向不存在的文件.下面详细介绍一下硬链接和软连接之间的区别.1.硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。2.若原文件删除了,则该软连接则不可以访问,而硬连接则是可以的。3.由于符号链接的特性,导致其可以跨越磁盘分区,但硬链接不具备这个特性.另外在转载一下网上的介绍.硬链接(hard link) lnUNIX文件系统提供了一种将不同文件链接至同一个文件的机制,称这种机制为链接。它可以使得单个程序对同一文件使用不同的名字。这样的好处是文件系统只存在一个文件的副本。系统简单地通过在目录中建立一个新的登记项来实现这种连接。该登记项具有一个新的文件名和要连接文件的inode号(inode与原文件相同)。不论一个文件有多少硬链接,在磁盘上只有一个描述它的inode,只要该文件的链接数不为0,该文件就保持存在。硬链接不能对目录建立硬链接!硬连接是直接建立在节点表上的(inode),建立硬连接指向一个文件的时候,会更新节点表上面的计数值。举个例子,一个文件被连接了两次(硬连接),这个文件的计数值是3,而无论通过3个文件名中的任何一个访问,效果都是完全一样的,但是如果删除其中任意一个,都只是把计数值减1,不会删除实际的内容的,(任何存在的文件本身就算是一个硬连接)只有计数值变成0也就是没有任何硬连接指向的时候才会真实的删除内容。软链接(symbolic link) ln-s把符号链接称为软链接,它是指向另一个文件的特殊文件,这种文件的数据部分仅包含它所要链接文件的路径名。软链接是为了克服硬链接的不足而引入的,软链接不直接使用inode号作为文件指针,而是使用文件路径名作为指针(软链接:文件名 + 数据部分–>目标文件的路径名)。软件有自己的inode,并在磁盘上有一小片空间存放路径名。因此,软链接能够跨文件系统,也可以和目录链接!其二,软链接可以对一个不存在的文件名进行链接,但直到这个名字对应的文件被创建后,才能打开其链接。


赞 (0)