Linux文件系统的硬连接与软连接

Linux 系统中有软连接和硬连接两种特殊的“文件”。node

软连接能够看做是Windows中的快捷方式,可让你快速连接到目标档案或目录。linux

硬连接则透过文件系统的inode来产生新档名,而不是产生新档案。索引

建立方法都很简单:get

1. 权限

软连接(符号连接) ln -s   source  target 方法

2. im

3. 数据

硬连接 (实体连接)ln       source  targetimg

4. 文件

inode

要解释清楚二者的区别和联系须要先说清楚 linux 文件系统中的 inode 这个东西。当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inode区和data block(实际数据放置在数据区域中)这个inode便是(目录、档案)文件在一个文件系统中的惟一标识,须要访问这个文件的时候必须先找到并读取这个 文件的 inode。 Inode 里面存储了文件的不少重要参数,其中惟一标识称做 Inumber, 其余信息还有建立时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息。

一般会根据分区的用途来安排inode的数量(这是另一个话题了),好比文件数量不少而文件都很小,则须要调增inode较大,以便能索引所有文件。不然将会出现这个分区并无写满而没法写入任何文件的状况。

 

目录文件与档案文件

目录文件:记录该目录下的文件名

档案文件:记录实际文件数据

inode自己并不记录文件名,文件名记录在目录文件的block当中,因此新增、删除、更改文件名与目录的W权限有关。所以当咱们要读某个档案时,就务必通过其目录的inode和block,而后才可以找到待读取档案的inode号,最终才会读到正确的档案block内的数据。系统是经过索引节点(而不是文件名)来定位每个文件。

目录inode(知足权限?) => 目录block => 档案inode(知足权限?) => 档案block

硬连接

多个档名对应同一个inode,硬连接只是在某个目录下新增一笔档名链 接到某个inode号码的关联记录而已。若是将上图中任何一个档名删除,档案的inode与block都还存在,依然还能够经过另外一个档名来读取正确的档 案数据。此外,不论用哪个档名来编辑,最终的结果都会写入相同的inode和block中,所以均能进行数据的修改。

软链接

 

软链接就是创建一个独立的文件,而这个文件会让数据的读取指向它link的那个档案的档名,因为只是做为指向的动做,因此当来源档案被删除以后,软链接的档案没法开启,由于找不到原始档名。连结档的内容只有档名,根据档名连接到正确的目录进一步取得目标档案的inode,最终就可以读取到正确的数据。若是目标档

相关文章
相关标签/搜索