Linux基础是很是重要得,不管是工做仍是咱们平时得学习,掌握Linux对你的学习道路必定能提供很多帮助。html
下面简单的介绍下Linux中的硬连接和软链接,为了你更好的理解我下面的分享,你须要掌握Linux中的inode概念,若是你还不知道,推荐你到个人另外一篇分享,先了解inode。传送门node
Linux中文件的inode号码与文件名通常都是一对一的关系,可是也能够多个一对多(多个文件名指向一个inode号码),称为硬连接。git
能够用不一样的文件名访问一样的内容github
对其中一个文件内容修改时,会影响到其余文件的内容。vim
删除其中一个文件时,其余文件能够正常访问,不受影响bash
首先,建立一个测试文件一,并写入 "作个哎记录的人"post
vim 1.txt
复制代码
接着建立一个硬连接学习
格式:ln 源文件 目标文件测试
ln 1.txt 2.txt
复制代码
能够看到执行命令后多了个2.txtspa
咱们打开2.txt看看~~
vim 2.txt
复制代码
发现内容跟1.txt 同样,跟copy差很少,但也是有取别:
硬连接,不管是修改源文件仍是目标文件,是会影响其它文件的,而copy后的文件修改是不会影响源文件的,而为何不会影响到呢,无非就是inode的问题
我 copy 2.txt 到 3.txt,
咱们能够经过一下命令来查看区别:
ls -i
复制代码
从图中能够发现, 1和2的 inode号码是同样的,因此修改其中一个文件,其他文件内容会随之变化. copy出来的3.txt 生成了个新的inode号码,因此是不会影响源文件的。因此验证了咱们上面那个结论。
咱们再验证一下,修改 inode号码同样的文件,其它文件是否会随之改变。
我打开2.txt 修改里面的内容,看1.txt是否有更新
发现1.txt也更新了
验证了咱们的1,2条结论。
那咱们把 2.txt 删除试试
发现 1.txt 还在,第三条结论也没有问题。
经过上面的验证,相信你们对Linux 的硬连接,应该掌握得差很少了,那咱们接着来说讲软链接,若是你已经掌握了硬连接,那软链接 很快就能掌握。
硬连接inode号码一致,软链接相反。
硬连接读的内容是不一样文件的内容,软连读的是源文件的内容。
经过如下命令建立一个软链接
命令结构:ln 源文件 目标文件
ln -s 1.txt 2.txt
复制代码
观察2.txt 后面,什么意思呢,就是 把2.txt路径指向1.txt的路径,当咱们访问2.txt的时候,实际读取的是1.txt的内容。
咱们访问 2.txt看看
vim 2.txt
复制代码
内容一致,没问题。怎么验证咱们上面说的实际读取的是1.txt的内容呢?很好验证,咱们把1.txt删除了。
明显看到,删除1.txt 后 字变红了,为何呢?很好理解,有错误,文件找不到了嘛,咱们把1.txt删除了,而2.txt还指向1.txt,一个不存在的文件。
咱们试着访问下2.txt
cat 2.txt
复制代码
发现报了个错误,文件找不到,因此咱们的结论没有问题。
相信到这里你对Linux的 inode 、硬连接、软链接已经掌握得差很少了,但愿能帮助到在看得你。