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

Linux中硬链接文件和软链接文件有什么区别?,第1张

linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同:

1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。

软链接类似windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。

2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4k,即一个block的大小。

3.硬链接不能给目录做,不能跨分区做。软链接则都可以。

创建硬链接命令:

ln

file

filenew

#file为原文件名,filenew为新文件名。

创建软链接命令:

ln

-s

file

filenew

#file为原文件名,filenew为新文件名。

(1)软链接可以跨越文件系统 ,硬链接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档链接到linux下/root目录下 bb,cc . ln -s aa.txt /root/bb 链接成功 。ln aa.txt /root/bb 失败 。

(2)关于 I节点的问题 。硬链接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的链接数不是 0,文件就一直存在,不管你删除的是源文件还是链接的文件 。只要有一个存在 ,文件就存在 (其实也不分什么源文件和链接文件的 ,因为他们指向都是同一个I节点的)。 当你修改源文件或者链接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以删除链接文件对源文件无影响,但是删除源文件,链接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名,但软链接文件没有属于自己的文件块. 软链接比较像windows下的快捷方式。

(3)软链接可以对一个不存在的文件名进行链接。

(4)软链接可以对目录进行链接。

备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/5912380.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-08
下一篇2023-03-08

发表评论

登录后才能评论

评论列表(0条)

    保存