硬连接与软连接详解

引言

Linux基础是很是重要得,不管是工做仍是咱们平时得学习,掌握Linux对你的学习道路必定能提供很多帮助。html

下面简单的介绍下Linux中的硬连接软链接,为了你更好的理解我下面的分享,你须要掌握Linux中的inode概念,若是你还不知道,推荐你到个人另外一篇分享,先了解inode。传送门node

硬连接

什么是硬连接

Linux中文件的inode号码与文件名通常都是一对一的关系,可是也能够多个一对多(多个文件名指向一个inode号码),称为硬连接。git

特色

  1. 能够用不一样的文件名访问一样的内容github

  2. 对其中一个文件内容修改时,会影响到其余文件的内容。vim

  3. 删除其中一个文件时,其余文件能够正常访问,不受影响bash

实例

首先,建立一个测试文件一,并写入 "作个哎记录的人"post

vim 1.txt
复制代码

Laravel

接着建立一个硬连接学习

格式:ln 源文件 目标文件测试

ln 1.txt 2.txt
复制代码

Laravel

能够看到执行命令后多了个2.txtspa

咱们打开2.txt看看~~

vim 2.txt
复制代码

Laravel

发现内容跟1.txt 同样,跟copy差很少,但也是有取别:

硬连接,不管是修改源文件仍是目标文件,是会影响其它文件的,而copy后的文件修改是不会影响源文件的,而为何不会影响到呢,无非就是inode的问题

我 copy 2.txt 到 3.txt,

咱们能够经过一下命令来查看区别:

ls -i
复制代码

Laravel

从图中能够发现, 1和2的 inode号码是同样的,因此修改其中一个文件,其他文件内容会随之变化. copy出来的3.txt 生成了个新的inode号码,因此是不会影响源文件的。因此验证了咱们上面那个结论。

咱们再验证一下,修改 inode号码同样的文件,其它文件是否会随之改变。

我打开2.txt 修改里面的内容,看1.txt是否有更新

Laravel

发现1.txt也更新了

验证了咱们的1,2条结论。

那咱们把 2.txt 删除试试

Laravel

发现 1.txt 还在,第三条结论也没有问题。

软连接

经过上面的验证,相信你们对Linux 的硬连接,应该掌握得差很少了,那咱们接着来说讲软链接,若是你已经掌握了硬连接,那软链接 很快就能掌握。

硬连接和软链接区别

  1. 硬连接inode号码一致,软链接相反。

  2. 硬连接读的内容是不一样文件的内容,软连读的是源文件的内容。

实例

经过如下命令建立一个软链接

命令结构:ln 源文件 目标文件

ln -s 1.txt 2.txt
复制代码

Laravel

观察2.txt 后面,什么意思呢,就是 把2.txt路径指向1.txt的路径,当咱们访问2.txt的时候,实际读取的是1.txt的内容。

咱们访问 2.txt看看

vim 2.txt
复制代码

Laravel

内容一致,没问题。怎么验证咱们上面说的实际读取的是1.txt的内容呢?很好验证,咱们把1.txt删除了。

Laravel

明显看到,删除1.txt 后 字变红了,为何呢?很好理解,有错误,文件找不到了嘛,咱们把1.txt删除了,而2.txt还指向1.txt,一个不存在的文件。

咱们试着访问下2.txt

cat 2.txt
复制代码

Laravel

发现报了个错误,文件找不到,因此咱们的结论没有问题。

篇尾

相信到这里你对Linux的 inode 、硬连接、软链接已经掌握得差很少了,但愿能帮助到在看得你。

我的博客

原文

相关文章
相关标签/搜索