Inode Table
Inode Table
inode表内存储了文件的元数据,包括文件权限、属主属组、文件大小、访问时间、修改时间、元数据变更时间和真正的数据存储位置的指向。
执行cp、rm、mv操做文件在磁盘上的变化
cp:分配一个空的inode号,在inode表中生成新条目在目录中创建一个目录项,将名称与inode编号关联拷贝数据生成新文件
rm:链接数递减,释放inode号,把数据块标记为空闲。删除目录项,数据不会马上被删除,当另一个文件使用数据块时将被覆盖
mv:移动的目标和源在同一文件系统,用新的文件名创建相对应的新目录项,删除旧的文件名,不影响磁盘上的数据位置,若源和目标不在同一文件系统,mv执行效果相当于cp+rm
硬链接
硬链接就是在同一文件系统内,不同名字,inode号和磁盘数据位置相同的一种文件。当硬链接被创建时文件的链接数+1,当文件被删除时,链接数-1,当链接数为0时,该文件被删除,硬链接不能跨分区。
命令格式:
1 | ln filename [linkname] |
示例:
1 | [root@centos7 data]# ll passwd |
软链接:
软链接是一个链接指向另一个文件,他可以对目录进行链接,也可以跨分区创建,其文件大小为指向的路径字符串的长度,创建或删除不会增加或减少目标文件inode的引用计数。
命令格式:
1 | ln -s filename [linkname] |
示例:
1 | [root@centos7 data]# ln -s ../data/passwd /passwd |
注意:软链接使用相对路径时,是相对于链接文件的相对路径,Linux系统内的软链接都是相对路径,所以在创建软链接时推荐使用相对路径。
软硬链接的区别:
区别 | 软链接 | 硬链接 |
---|---|---|
文件 | 不同的文件 | 同一个文件 |
inode号 | 不同 | 相同 |
能否跨分区 | 能 | 不能 |
链接数 | 不增加 | 增加 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MyLinuxOPS!