一.关于inode
1.在linux下一切皆文件,linux文件由三部分组成:文件名,inode,block块
- 文件名:文件名只是为了更好辨别文件而起的别名;
- inode::inode存储的是文件的元信息,比如:文件字节数、文件属主UID、文件属组GID、读写执行权限、时间戳等。inode是linux系统识别文件的唯一标识;
- block块:block块是真正存储文件数据的地方。
2.查看文件名,inode,block块的方法:可以使用stat命令
[root@node5 ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 2615 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17363913 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-12-13 11:20:01.293083729 +0800
Modify: 2020-12-10 11:14:34.432545850 +0800
Change: 2020-12-10 11:14:34.434545850 +0800
Birth: -
二.inode的作用
由于 inode 号码与文件名分离,这种机制导致了一些 Unix/Linux 系统特有的现象:
- 有时,文件名包含特殊字符,无法正常删除。这时,直接删除 inode 节点,就能起到删除文件的作用;
- 移动文件或重命名文件,只是改变文件名,不影响 inode 号码;
- 打开一个文件之后,系统就以 inode 号码来识别这个文件,不再考虑文件名。因此系统无法从 inode 号码得知文件名。
二.为什么每次修改完服务器配置文件之后,都需要重新加载一下配置文件?
答:因为vim每次修改完配置文件之后,inode号都会改变,这对于linux系统来说这是一个新文件,需要重新加载配置文件。
[root@node5 ~]# cp /etc/profile profile
#-i参数可以查看inode号,此时33688532就是profile的inode号
[root@node5 ~]# ll -i profile
33688532 -rw-r--r-- 1 root root 1795 Nov 27 15:50 profile
#使用echo追加一些内容,发现inode号没有改变
[root@node5 ~]# echo '#!/bin/bash' >> profile
[root@node5 ~]# ll -i profile
33688532 -rw-r--r-- 1 root root 1807 Nov 27 15:51 profile
#使用vim修改文件之后inode号已经改变
[root@node5 ~]# vim profile
[root@node5 ~]# ll -i profile
34449901 -rw-r--r-- 1 root root 1826 Nov 27 15:52 profile