linux檔案鏈結
1、inode的作用
檔案具體資料都儲存在"塊"(在block區)中,我們還必須找到乙個地方儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。這種儲存檔案元資訊的區域就叫做inode(在inode區),中文譯名為"索引節點"。每個inode都有乙個號碼,作業系統用inode號碼來識別不同的檔案。
2、indoe包含的資訊
可以使用stat命令來檢視檔案的inode資訊:stat 檔案
inode包含檔案的元資訊,具體來說有以下內容:
* 檔案的位元組數
* 檔案擁有者的user id
* 檔案的group id
* 檔案的讀、寫、執行許可權
* 檔案的時間戳,共有三個:
ctime指inode上一次變動的時間
mtime指檔案內容上一次變動的時間
atime指檔案上一次開啟的時間。
* 鏈結數,即有多少檔名指向這個inode
* 檔案資料block的位置
注: inode也會消耗硬碟空間,所以硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是block區,存放檔案資料;另乙個是inode區,存放inode所包含的資訊。
由於每個檔案都必須有乙個inode,因此有可能發生inode已經用光,但是硬碟還未存滿的情況。這時,就無法在硬碟上建立新檔案。
3、硬鏈結
一般情況下,檔名和inode號碼是"一一對應"關係,每個inode號碼對應乙個檔名。但是,unix/linux系統允許,多個檔名指向同乙個inode號碼。這意味著,可以用不同的檔名訪問同樣的內容;對檔案內容進行修改,會影響到所有檔名;但是,刪除乙個檔名,不影響另乙個檔名的訪問。這種情況就被稱為"硬鏈結"(hardlink)。
執行該命令後,原始檔與目標檔案共用乙個inode號碼,即都指向同乙個inode。inode資訊中有一項叫做"鏈結數",記錄指向該inode的檔名總數,這時就會增加1。反過來,刪除乙個檔名,就會使得inode節點中的"鏈結數"減1。當這個值減到0,表明沒有檔名指向這個inode,系統就會**這個inode號碼,以及其所對應block區域。
4、軟鏈結
軟鏈結類似於windows系統下的快捷方式。
可以使用ls -l命令檢視軟鏈結檔案指向的原始檔的路徑。為了增強程式可移植性,通常情況下我們建立符號鏈結時原始檔使用絕對路徑而不使用相對路徑。
若檔案a是檔案b的軟鏈結,意味著檔案a依賴於檔案b。如果刪除了檔案b,則檔案a會變成無效檔案(即使檔案a仍然存在)。這是軟鏈結與硬鏈結最大的不同:軟鏈結指向的是檔案的路徑名而不是檔案的inode號碼,檔案b的inode號碼也不會因為軟鏈結的存在而增加。
看完這篇部落格如果想對硬鏈結有更深刻的認識,請看 /個人分類/專案集錦/備份檔案 部落格
linux 檔案系統 Linux 檔案系統結構介紹
ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...
LINUX之檔案系統目錄結構
初步接觸linux時,一般都是從有介面的 ubuntu 或其他的系統 開始了解的,當然不管是有介面或者是無介面,其核心都是一樣的 linux 核心。其檔案系統的目錄結構也是一樣的,就像用 windows 一樣,你得知道整個電腦有幾個碟符,每個碟符裡面存放著哪些東西,這樣工作起來更順暢。linux 檔...
Linux系統結構之檔案系統(一)
一 linux系統支援多種檔案系統,大致可分為 1 磁碟檔案系統 指本地主機中實際可以通過磁碟訪問的系統,包括硬碟 光碟機 cd rom或 等 usb儲存 磁碟陣列 raid 等。常見的檔案系統格式有 autofs ext3 ext4 ufs unix系統檔案系統 fat fat16 fat32 n...