1 文件元數據和節點表結構
inode表結構
每一個文件的屬性信息,好比:文件的大小,時間,類型等,稱爲文件的元數據(meta data)
node 表中有不少條記錄組成,第一條記錄對應的存放了一個文 件的元數據信息
第一個node表記錄對應的保存瞭如下信息:
node
- inode number 節點號
- 文件類型
- 權限
- UID
- GID
- 連接數(指向這個文件名路徑名稱個數)
- 該文件的大小和不一樣的時間戳
- 指向磁盤上文件的數據塊指針
- 有關文件的其餘數據
目錄
目錄是個特殊文件,目錄文件的內容保存了此目錄中文件的列表及inode number對應關係centos
- 文件引用一個是 inode號
- 人是經過文件名來引用一個文件
- 一個目錄是目錄下的文件名和文件inode號之間的映射
inode表和目錄
CP和inode
分配一個空閒的inode號,在inode表中生成新條目
在目錄中建立一個目錄項,將名稱與inode編號關聯
拷貝數據生成新的文件
ide
rm和inode
連接數遞減,從而釋放的inode號能夠被重用
把數據塊放在空閒的列表中
刪除目錄項
數據實際上不會立刻被刪除,但當另外一個文件使用數據塊時將被覆蓋
centos7
mv和inode
若是mv命令的目標和源在相同文件系統
用新的文件名建立新的目錄項
刪除舊目錄條目對應的舊文件名
不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動
若是src和dst不在同一個的文件系統上,mv至關於cp和rm
spa
刪除大文件
[root@centos7 dir1]# echo abc > a [root@centos7 dir1]# cat a abc [root@centos7 dir1]# cat /dev/null > a [root@centos7 dir1]# cat a
軟連接和硬連接的區別
硬連接本質上就是給一個文件取一個新的名稱,實質是同一個文件指針
ln filename [linkname]code
軟連接指向另外一個文件,相似快捷方式,軟連接文件和原文件本質上不是同一個文件blog
ln -s filename [linkname]it
[root@centos7 ~]# touch b [root@centos7 ~]# ll 總用量 4 -rw-r--r--. 1 root root 0 10月 18 09:26 a -rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg -rw-r--r--. 1 root root 0 10月 18 09:31 b [root@centos7 ~]# ln a c [root@centos7 ~]# ll 總用量 4 -rw-r--r--. 2 root root 0 10月 18 09:26 a -rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg -rw-r--r--. 1 root root 0 10月 18 09:31 b -rw-r--r--. 2 root root 0 10月 18 09:26 c [root@centos7 ~]# ln -s b d [root@centos7 ~]# ll 總用量 4 -rw-r--r--. 2 root root 0 10月 18 09:26 a -rw-------. 1 root root 1444 10月 18 08:45 anaconda-ks.cfg -rw-r--r--. 1 root root 0 10月 18 09:31 b -rw-r--r--. 2 root root 0 10月 18 09:26 c lrwxrwxrwx. 1 root root 1 10月 18 09:31 d -> b [root@centos7 ~]#