Linux的软硬链接
Linux操作系统的档案权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode中,至于实际数据则放置到data block区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode 与 block的总量、使用量、剩余量等。
每个inode与block都有自己的编号,以下是它们的数据意义
数据名 | 意义 |
---|---|
superblock | 记录此 filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等; |
inode | 记录档案的属性,一个档案占用一个inode,同时记录此档案的数据所在的 block号码 |
block | 实际记录档案的内容,若档案太大时,会占用多个 block |
每个文档都会占据掉一个inode号码,inode内则是档案数据所放置的block号码。因此,我们只要找到文档的inode号码,里面放置数据的block号码我们也就自然知道。
软链接:
软链接所用的方法:先创建一个文件link_symbol,它有自己的inode和block。在进行软链接的时候再创建一个文件link_symbol_soft,它也有自己的inode和block,但是它的档案数据放置地block所指向的是被链接的文件名。因此,被链接的文件被删除后,联系从中间断开,它就无法指向inode号为20000的区域,也就没有办法查看其档案数据放置地的block。
[root@localhost ~]# touch file_symbol
[root@localhost ~]# stat file_symbol
File: file_symbol
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17646181 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:adm