linux 硬链接和软连接详解程序员

说明

首先,必须要清楚为什么有链接,链接存在的目的是什么?
为了文件的共享,linux推出了硬链接软链接
文件存储分为两部分,元数据区和内容数据区,元数据区存有创建时间、大小、权限、inode(index node)号,内容数据区存储文件的内容;
在打开文件时,通过文件名字找到文件的inode号,通过inode号找到文件,从而打开文件,也就是说文件名仅是为了好记,相当于inode的别名,所以可以多个文件名指向同一个inode号。

硬链接和软连接

硬链接(hard link)

对文件头做了复制,副本的inode号与原文件相同,删除原文件,仅是删除了一个文件头,仍然有其他文件头指向文件内容,所以文件内容还存在。
在这里插入图片描述

软连接 soft link/symbolic link

类似windows的快捷方式,链接的文件内容存储的原文件的路径,所以删除原文件会导致软连接不可用。

实战

创建硬链接,软连接
使用ln命令创建链接

ln – make links between files

ln a.txt a_hard //创建硬链接 
ln -s a.txt a_soft //创建软链接 
[[email protected] test_link]# ls -l 
total 12 
-rw-r--r-- 3 root root 31 Feb  8 15:23 a_hard 
-rw-r--r-- 3 root root 31 Feb  8 15:23 a_hard2 
lrwxrwxrwx 1 root root  5 Feb  8 15:23 a_soft -> a.txt 
-rw-r--r-- 3 root root 31 Feb  8 15:23 a.txt 
 

可以看到a_hard、a_hard2的inode号都是31,而a_soft的inode号则与原文件不同,并且a_soft指向a.txt;打开任何一个链接,都等同于打开a.txt原文件。

[[email protected] test_link]# cat a_hard 
hello, this is hello a. 
And u? 
 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/1222.html

(0)
上一篇 2021年7月15日
下一篇 2021年7月15日

相关推荐

发表回复

登录后才能评论