欢迎光临
我们一直在努力

linux 硬连接与软连接与复制

对一个文件做硬连接,软连接,复制,查看三者的不同之处:
创建一个软连接
[root@localhost tmp]# ln -s tmp soft_tmp
创建一个硬连接:
[root@localhost tmp]# ln tmp hard_tmp
复制文件:
[root@localhost tmp]# cp tmp cp_tmp
查看三者的inod值
[root@localhost tmp]# ls -li
total 12
260855 -rwxr-xr–. 2 root root 2 Aug 22 01:51 tmp
260855 -rwxr-xr–. 2 root root 2 Aug 22 01:51 hard_tmp
287381 lrwxrwxrwx. 1 root root 3 Aug 22 01:48 soft_tmp -> tmp
287383 -rwxr-xr–. 1 root root 2 Aug 22 02:02 cp_tmp

可以发现硬连接的inod值与原文件一样,软连接与复制出来的文件inod值与源文件不同。
如果删除源文件则软连接会失效,硬连接依旧存在。

查看网上相关帖子,详细总结备份下:

我的总结:
三者的本质区别
本质区别在与inod的不同,硬连接是与物理文件直接相连的,是访问这个文件的另外一个入口,它与源文件没有任何差别,不使用硬盘容量,复制则是开辟一个新的硬盘空间并在里面填充了一样的内容,它的inod自然也就不同了,而软连接只是一个保存了源文件路径的文件,原文件的不存在了,这个路径也就错了,软连接也就失效了。

什么情况下使用哪个
可以使用硬连接对一个巨大的文件进行备份,软连接可以跨文件系统,可以对目录做软连接,硬连接则不行

自己的总结不够好,这里把别人写的好的总结也放进来。

1. 软连接可以 跨文件系统 ,硬连接不可以 。
2. 硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是源文件还是 连接的文件 。软连接不直接使用i节点号,而 是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响,但是 删除 源文件,连接文件 就会找不到要指向的文件 。软连接有自己的inode,并在磁盘上有一小片空间存放路径名.
3. 软连接可以对一个不存在的文件名进行连接 。
4. 软连接可以对目录进行连接。
5. 硬连接可以认为不是一个文件,它只是实际文件的一个别名,它的作用是防止真实文件被误操作, 给一个文件建立硬连接后,他们互为别名,删除其中任意一个,只会删除该别名,实际文件并不会 被删除。由于只是别名没有任何其他信息,所以并不占用原始文件大小的磁盘空间

赞(0) 打赏
未经允许不得转载:运维那些事 » linux 硬连接与软连接与复制

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏