彻底理解Linux系统下文件的软链接和硬链接的区别

鄙人的新书《Elasticsearch权威指南》正式出版发行,欢迎购买!本书由华为、中兴高级技术专家全面审读并撰序,助您挑战百万年薪 购书链接: 在这里插入图片描述

《Elasticsearch权威指南》
欢迎关注鄙人公众号,技术干货随时看!
在这里插入图片描述

  最近有同事来问鄙人,通过ln命令创建的文件的软链接和硬链接到底有啥区别,使用起来功能上貌似是一样的,感觉都像是文件的一个别名而已,而且软链接用的居多。网络上流传的资料,大多都是胡扯级别的:软链文件与源文件内容不同、硬链接会创建独立的虚拟文件、inode不同或相同之类的。建立文件链接的目的一般是:当有多处使用同一个文件时,如果文件的位置或名称变更了,每一处都要随着更改,如果是使用软链接,则只需变更下软链接就可以了。 下面我们通过示例来彻底理清软链接和硬链接的区别与联系。

命令用法

  1. 在/opt/study目录下创建一个新文件file,内容是:atom atom atom
    在这里插入图片描述

  2. 建立软链接
    在这里插入图片描述
      我们可以看到,成功创建了指向file的软链接soft_file

  3. 建立硬链接
    在这里插入图片描述
      我们可以看到,成功创建了指向file的硬链接hard_file

区别与联系

  1. 软链接soft_file与硬链接hard_file,本质上都是文件。因为在linux系统下,一切都是文件,包括文档、目录、soket、终端。

  2. inode上有本质的区别。inode是表示文件的唯一数字,这个数字由内核分配给文件系统中的每一个对象,一个inode可以指向多个对象,拥有相同的inode的对象会保持同步更新,也就是内容是完全一样的,要查看inode,给ls命令加上-i参数即可。
    在这里插入图片描述
      我们可以看到,软链接的inode与源文件不同,这表明软链接本质上是一个独立的文件,但文件的内容只是执行源文件的一个引用或者说指针,并不实际存储源文件的内容,不管源文件的内容有多大,软链接文件都是非常小的,其实可以理解为,文件的一个快捷方式或别名。
      硬链接hard_file的inode与源文件相同,大小相同,时间戳相同。硬链接本质上源文件的一个拷贝,占用的存储空间与源文件相同,同时硬链接与源文件会保持同步更新,更二者之一,另一个的内容和时间戳都会同步更新。

  3. 软链接可以指向目录,硬链接只能指向文件。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿童木-atom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值