软链接和硬链接

2017-09-22  本文已影响0人  wayyyy

要理解软链接和硬链接需要首先理解文件系统的原理,这里以EXT2文件系统为例。

Ext2文件系统由3部分组成:

super block

记录此文件系统的整体信息,包括 inode/block 的总量,使用量,剩余量。以及文件系统的格式与相关信息。

inode

一个文件占用一个inode,记录文件的属性和权限等,同时也记录此文件的数据所在的block号码。

block

实际记录文件内容,若文件太大时,会占用多个block。

每个inode和block都有编号,而每个文件都会占用一个inode,同时记录此文件数据所在的block号码。因此,我们知道一个一个文件的inode,也就自然知道这个文件所放置数据的block号码,当然也就能够读出文件的实际数据。

inode/block数据访问示意图.jpg

链接文件

Linux下的链接文件有2种:

hard link(硬链接)

使用命令:ln 源文件 目标文件

我们知道文件名只与目录有关,但是文件内容则与 inode 有关。硬链接就是多个文件名对应同一个inode。

hard link.jpg 硬链接.png
symbolic link(符号连接,也即是软链接)

使用命令:ln -s 源文件 目标文件

symbolic link 就是在创建一个独立的文件,而这个文件里的数据就是它链接的那个文件的文件名。

symbolic link.jpg symbolic link.png
readlink

参考资料
1、https://www.cnblogs.com/kwdeblog/p/11413756.html
2、https://blog.csdn.net/qq_41982304/article/details/82263478
3、https://blog.csdn.net/qq_16209077/article/details/51974359

上一篇 下一篇

猜你喜欢

热点阅读