首先理解一下一下inode:unix/linux系統內部不使用檔名,而使用inode號碼來識別檔案。
表面上,使用者通過檔名,開啟檔案。實際上,系統內部這個過程分成三步:首先,系統找到這個檔名對應的inode號碼;其次,通過inode號碼,獲取inode資訊;最後,根據inode資訊,找到檔案資料所在的block,讀出資料。
1、檔名和inode號碼是"一一對應"關係,每個inode號碼對應乙個檔名。但是,unix/linux系統允許,多個檔名指向同乙個inode號碼。
這意味著,可以用不同的檔名訪問同樣的內容;對檔案內容進行修改,會影響到所有檔名;但是,刪除乙個檔名,不影響另乙個檔名的訪問。這種情況就被稱為"硬鏈結"(hard link)。
2、除了硬鏈結以外,還有一種特殊情況。
檔案a和檔案b的inode號碼雖然不一樣,但是檔案a的內容是檔案b的路徑。讀取檔案a時,系統會自動將訪問者導向檔案b。因此,無論開啟哪乙個檔案,最終讀取的都是檔案b。這時,檔案a就稱為檔案b的"軟鏈結"(soft link)或者"符號鏈結(symbolic link)。
這意味著,檔案a依賴於檔案b而存在,如果刪除了檔案b,開啟檔案a就會報錯:"no such file or directory"。這是軟鏈結與硬鏈結最大的不同:檔案a指向檔案b的檔名,而不是檔案b的inode號碼,檔案b的inode"鏈結數"不會因此發生變化。
ln -s命令可以建立軟鏈結 ln -s 原始檔(或目錄) 目標檔案(或目錄)
參考鏈結
區塊鏈 軟分叉和硬分叉
最近學到的東西,記個筆記。區塊鏈中因為各種原因,使得節點之間不完全統一,產生分叉的現象。雙花其實就是一種軟分叉,軟分叉中雖然區塊之間的鏈存在差異,但節點與節點之間仍然可以相容,通過不同的協議,仍然可以保持乙個整體,如同btc 位元幣 選擇的孤塊策略和eth 以太坊 選擇的uncle 策略。硬分叉比較...
Windows下建立硬鏈結和軟鏈結 符號鏈結
首先簡單理解一下硬鏈結和符號鏈結 軟鏈結 的區別 此文中的符號鏈結和軟鏈結指同一概念 硬連線指向的是節點 inode 而軟連線指向的是路徑 path 最初的檔名與所有的硬鏈結地位是對等的,比如為檔案 a 建立了硬鏈結 b c d。那麼a b c d之中只要有乙個檔案未刪除,這個檔案就可通未刪除的名稱...
區塊鏈的硬分叉 軟分叉介紹
區塊鏈的硬分叉 軟分叉介紹 分叉 由於交易結構的變化,或者區塊的結構變化引起的。硬分叉 由於區塊的結構變化引起的。公升級後的客戶端和不公升級的挖不同的幣 軟分叉 由位元幣交易的資料結構改變引起,區塊的資料結構未改變。礦工啟用軟分叉,使用者啟用軟分叉,隔離見證,擴容。注 最近bch又在硬分叉了,bch...