linux软连接和硬链接的区别详细介绍

一、 建立软链接和硬链接的命令
软链接:ln -s 源文件 目标文件
软链接:ln -s 源文件 目标文件夹(目录)
硬链接:ln 源文件 目标文件

二 、什么是软链接和硬链接,下边举例描述如下:
1,软链接可以理解成快捷方式。它和windows下的桌面的快捷方式的作用是一样的。
2,硬链接等于cp -p(复制)+ 同步更新。

举例如下
建立test文件夹,然后新建了一个test_file文件如图所示:
这里写图片描述

然后建立软链接和硬链接:
在这里插入图片描述
它们之间的区别:
软链接文件的大小和创建时间和源文件不同。软链接文件只是维持了从软链接到源文件的指向关系(从test_file.soft->test_file可以看出),不是源文件的内容,大小不一样.
硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样,相当于copy了一份。
这里写图片描述

但是简单的copy的文件创建文件的时间应该是复制文件时的时间,肯定不会像硬链接那样和创建源文件的时间相同。(硬链接不是简单的copy)
在这里插入图片描述

但是只要加一个选项-p,时间就一样了(硬链接也不是仅这么简单)
在这里插入图片描述

那么cp -p的文件是不是就相当于硬链接了呢?其实不然,对于源文件的内容有修改,硬链接文件会同步更新修改,始终保持和源文件的内容相同,而复制的文件则不可能做到这一点。
下图解释硬链接和copy的区别
这里写图片描述
所以,硬链接等于cp -p加同步更新。
软链接像快捷方式,方便我们打开源文件,这一点在windows中深有体会,经常操作。
硬链接的应用场景
在多用户的操作系统里,你写一个脚本,程序等,没有完成,保存后等下次有时间继续写,但是其他用户有可能将你未写完的东西当成垃圾清理掉,这时,你对你的程序,脚本等做一个硬链接,利用硬链接的同步更新,就可以方式,别人误删你的源文件了。

三、删除源文件对软链接和硬链接的影响
如下图所示
在这里插入图片描述

查看软链接文件,查看的文件不存在。和windows一样,删除源文件,快捷方式也就用不了。但是删除源文件,为什么硬链接文件还可以查看呢?
解释如下:
i节点是文件和目录的唯一标识,每个文件和目录必有i节点,不然操作系统就无法识别该文件或系统,就像没有上户口的黑户。linux操作系统是不识别些字母的,像这些test_file ,test_file.hard操作系统根本不知道这是什么。
可以看出硬链接文件和源文件i节点号相同,并且一个i节点可以对应多个文件名。
这里写图片描述

如图,删除了源文件test_file,只是删除了从532751到test_file的映射关系,不影响它和test_file.hard的映射关系。此图也解释了硬链接的同步更新,对源文件修改,操作系统只认i节点,于是操作系统就将修改内容写进所有i节点相同名字不同的文件。
四、软连接和硬链接的创建方式也不同

  • 硬链接不能对目录进行创建,只可对文件创建;

  • 软链接可对文件或目录创建

Linux中,软链接(symbolic link)和硬链接(hard link)是两种不同的文件链接方式,它们有以下区别: 1. 软链接是一个指向目标文件或目录的文件,类似于Windows系统中的快捷方式。软链接文件有自己的inode,并且可以跨文件系统进行链接。删除软链接文件不会影响目标文件或目录。软链接可以通过`ln -s`命令创建。 2. 硬链接是一个指向目标文件的目录项,它与目标文件具有相同的inode和数据块,实际上是同一个文件的不同名称。硬链接只能在同一个文件系统中创建,并且不能链接目录。删除任何一个硬链接都不会影响其他硬链接,只有当所有硬链接都被删除后,才会释放目标文件的空间。硬链接可以通过`ln`命令创建。 3. 软链接可以指向目录,而硬链接不能。 4. 修改目标文件内容时,软链接和硬链接都会反映出修改后的内容。但是,如果删除了目标文件,在软链接中仍然可以访问到目标文件的内容,而硬链接将无法访问。 5. 软链接相对于目标文件具有更高的灵活性,可以跨越文件系统和目录,但是由于需要额外的inode和数据块进行存储,占用更多的空间。硬链接没有这些限制,但是只能在同一个文件系统中使用。 总结起来,软链接是一个指向目标文件或目录的文件,而硬链接是目标文件的另一个名称。软链接可以跨文件系统和目录,而硬链接只能在同一个文件系统中使用。删除目标文件后,软链接仍然可以访问,而硬链接将无法访问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值