一.關於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