inode是linux中的保存文件屬性的結構,而文件的實際內容存放在block中。文件的block的地址信息存儲在inode中。node
能夠使用命令ll -di file_path查看文件/目錄的inode。(操做系統查找文件時,也是根據文件的目錄一級一級查找inode獲得的。當前目錄的子目錄信息所在的block信息也在當前目錄的inode中)linux
文件的inode中存放文件的block信息,block信息是文件的實際block地址仍是另外一個inode的block信息決定了該文件是對文件的一個物理連接仍是符號連接。 下圖1是一較好的說明圖:硬連接的刪除除了刪除inode,同時有可能刪除掉實際的文件(若是文件的硬連接節點數==0),軟連接的刪除只是刪除了該文件 名對應的inode,並不會刪除實際的文件,若是軟連接指向的硬連接的inode被刪除,則軟連接將沒法訪問實際的文件。編程
實際編程中,在進程裏打開一個文件返回整型文件描述符並非一個inode,而是系統中一個文件表格的下標,該文件表格中的元素存儲了文件的inode位置。在fork子進程時,僅僅是將高下標複製給了子進程,而inode和系統的文件表格都是同樣的。也就是說子進程與父進程對文件是共享的。操作系統
fd_father->文件表格->inode->block進程
^file
fd_son--------im
硬連接:多個文件名能夠指向同一個inode。即不一樣的文件名在硬連接同一個文件時查找到的inode的inode號是同樣的。
img
圖1: di
硬連接文件
軟連接