常用命令
ls -R
chmod -R
du
find
檔案系統的三個地區:
超級塊 i-節點表 資料區
a 檔案系統的第一個地區稱為超級塊,這個塊存放檔案系統本身的結構資訊。
b i-節點表,每個檔案的屬性被記錄在稱為i-節點的結構中,i-節點儲存在i-節點表中。表中的i-節點都是通過位置來標識的。標識為2的i-節點位於檔案系統i-節點表的第3個位置。
c 資料區
建立檔案的過程:
檔案有內容和屬性,核心將檔案內容存放在資料區,檔案屬性存放在i-節點,檔案名稱存放在目錄。
ls -1ia//查看目前的目錄中的 i-節點號和檔案名稱
-1 每行顯示一個檔案
-i 顯示i-節點號
2 一個固定大小的i-節點如何儲存較長的分配列表?
i-節點包含一個大小為13的鏈表,鏈表中的前10項儲存資料區塊的編號,鏈表的第11項是間接塊,間接的儲存分配列表
3 目錄包含的是檔案的引用,每個引用被稱為連結。檔案的內容儲存在資料區塊,檔案的屬性被記錄在一個被成為i-節點的結構中,i-節點的編號和檔案名稱儲存在目錄中。
與分類樹相關的命令和系統調用
#include<sys/stat.h>
#include<sys/types.h>
int result=mkdir(char *pathname,mode_t mode)
int result=rmdir(const char *path);
int result=unlink(const char *path);從一個目錄檔案中刪除一個記錄
int result=link(const char *orig,const char *new);產生一個i-節點的連結
int result=rename(const char *from,const char *to);
int result=chdir(const char *path);
wc -l 對檔案計算行數
diff 檔案1 檔案2 比較檔案的內容
4
不允許給目錄建立永久連結。
不可以在不同檔案系統的檔案間建立連結。
軟連結與永久連結的區別:
從上面連結後的結果可以看出來軟連結與永久連結,區別不僅僅是在概念上,在實現上也是完全不同的。
區別:
1.永久連結原檔案/連結檔案公用一個inode號,說明他們是同一個檔案,而軟連結原檔案/連結檔案擁有不同的inode號,表明他們是兩個不同的檔案;
2.在檔案屬性上軟連結明確寫出了是連結檔案,而永久連結沒有寫出來,因為在本質上永久連結檔案和原檔案是完全平等關係;
3.連結數目是不一樣的,軟連結的連結數目不會增加;
4.檔案大小是不一樣的,永久連結檔案顯示的大小是跟原檔案是一樣的。而這裡軟連結顯示的大小與原檔案就不同了,BBB大小是95B,而BBBsoft是3B。
總之,建立軟連結就是建立了一個新檔案。當訪問連結檔案時,系統就會發現他是個連結檔案,它讀取連結檔案找到真正要訪問的檔案。
當然軟連結也有永久連結沒有的缺點,因為連結檔案包含有原檔案的路徑資訊,所以當原檔案從一個目錄下移到其他目錄中,再訪問連結檔案,系統就找不到了,而永久連結就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和儲存原檔案的路徑。