加入收藏 | 设为首页 | 会员中心 | 我要投稿 520站长网 (https://www.520shu.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux中的硬链接和软链接

发布时间:2022-11-04 13:31:18 所属栏目:Linux 来源:转载
导读:
在linux系统中,任何东西都是一个文件,文件基本上是指向inode(一种数据结构,除了文件名和实际内容之外,还存储有关文件的所有内容)的链接。
硬链接的作用类似于原始文件的镜像副本。这

海蜘蛛软路由 linux_linux 创建软链接_linux软链接

在linux系统中,任何东西都是一个文件,文件基本上是指向inode(一种数据结构,除了文件名和实际内容之外,还存储有关文件的所有内容)的链接。

硬链接的作用类似于原始文件的镜像副本。这些链接共享相同的 inode。对原始文件或硬链接文件所做的更改将反映在不同的文件中。删除硬链接时,其他文件不会发生任何变化。硬链接不能跨文件系统。

其中软链接是指向原始文件的实际链接,也称为符号链接或符号链接。这些链接将具有不同的Inodes值。软链接指向原始文件,因此如果原始文件被删除,则软链接将失败。如果删除软链接,文件将不会发生任何变化。这样做的原因是,实际文件或目录的inode与"软链接"创建的文件的inode不同。软链接可以跨文件系统。

海蜘蛛软路由 linux_linux软链接_linux 创建软链接

如何创建硬链接

通过执行以下命令ln 目标文件 源文件。以下命令创建一个为hello2.txt文件的硬链接为hello6.txt.

[root@localhost sharplee]#ln hello2.txt hello6.txt

通过以下命令来查看两个文件的inode值。

[root@localhost sharplee]#ls -il hello2.txt hello6.txt

linux 创建软链接_海蜘蛛软路由 linux_linux软链接

从上图可以看出hello2.txt和hello6.txt有相同的inode值,inode值是53324743,两个文件有相同的权限和相同的大小。

接下来删除hello2.txt,看看源文件是否删除。看一下链接出来的文件有没有被删除。

[root@localhost backdir]# rm hello2.txt

linux 创建软链接_海蜘蛛软路由 linux_linux软链接

通过上图可以看出来,删除硬链接的源文件。链接的文件还在。

如何创建软链接

使用ln -s 来创建软链接,下面来创建hello3.txt的软链接为hello7.txt。

[root@localhost backdir]# ln -s hello3.txt hello7.txt

linux软链接_海蜘蛛软路由 linux_linux 创建软链接

下面查看以下两个软链接文件的inode值。

[root@localhost sharplee]#ls -il hello2.txt hello6.txt

linux 创建软链接_海蜘蛛软路由 linux_linux软链接

接下来删除源文件,看一下linux软链接,链接出来的文件会发生啥变化?

[root@localhost backdir]# rm hello3.txt

海蜘蛛软路由 linux_linux软链接_linux 创建软链接

从上图中可以看出,删除软链接的源文件后,链接后的文件指向了空的,查看显示找不到文件。下面来测试一下,删除软链接后的文件,源文件会发生改变不?

linux软链接_海蜘蛛软路由 linux_linux 创建软链接

海蜘蛛软路由 linux_linux 创建软链接_linux软链接

总结:硬链接具有相同的inode,删除硬链接的不同文件,其它文件不受影响。软链接,具有不同的inode,删除软链接的源文件,则链接目标文件不存在。删除软链接目标文件,源文件不受任何影响。

(编辑:520站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!