说明
首先,必须要清楚为什么有链接,链接存在的目的是什么?
为了文件的共享,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