基於inode技術,linux允許多個檔名同時指向乙個inode。好處就是,我們可以用不同的檔名去訪問同乙個檔案,每次操作對檔案內容的影響會波及所有「副本」,刪除掉乙個「副本」,不會影響其他檔案。增加乙個硬鏈結檔案,僅僅是inode裡的「links」屬性值加1,刪除乙個硬鏈結檔案,屬性值減1。只有「links」的值為0時,檔案才會被徹底刪除,**其占用的空間。
ln sourcefile destfile
其中,前者是原始檔,後者是目標檔案。建立完成後,使用stat命令檢視其中之一,就會發現links的值變為2了,用ls -i檢視檔案,你會發現這兩個檔案的inode號是相同的。
如果我們使用vim在同乙個緩衝區(buffer)中開啟這兩個檔案:
vim sourcefile
:new destfile
以上命令會在vim中開啟兩個視窗,你在操作其中乙個檔案時,會發現另乙個視窗是同步聯動的。
硬鏈結的應用場景比較廣泛,比如多人修改同乙個檔案、重要檔案備份、檔案更新、節省磁碟空間等。這些方便的特性都源於inode的設計思想。
注意:我們無法為目錄建立硬鏈結,但是作業系統利用特權偷偷在每個目錄下建立了兩個硬鏈結,乙個是「.」,另乙個是「..」。使用ls -ai命令可以看到這兩個硬鏈結目錄和inode號,前者代表當前目錄,後者代表當前目錄的父級目錄。
硬鏈結不建立inode,所以無法跨檔案系統,這一點可以由軟鏈結實現。
《MacTalk 人生元程式設計》一一1 8 軟鏈結
軟鏈結理解起來比較容易,類似windows系統中的快捷方式。軟鏈結會建立新的inode,inode裡主要記錄了原始檔的路徑。當訪問軟鏈結檔案時,系統會幫你自動指向原始檔,無論你操作的是原始檔,還是軟鏈結檔案,其實你最終操作的都是原始檔,原始檔刪除了,軟鏈結檔案就成了無本之木,也就毫無意義,強制訪問的...
讀《MacTalk人生元程式設計》,完
好壞不表了。從書中有所得,對於我就是值得的。書中介紹了,作者讀過的書,喜歡的作者,對於我這種讀書不多的人,是個很好的索引了。王小波,馮唐 三十六大 雜文 各種外掛程式,工具,對於剛開始用 mac 電腦的人來說很適用。其他的,關於蘋果的故事。作者自身的故事。或還有其他人的故事。是否與爹有關。的人生成長...
模板元程式設計(1)
最近看到之前自己寫過的乙個小東西,可以作為模板元程式設計的開篇案例,所以就打算寫一系列的文章來講述一下c 中的模板元程式設計 模板元程式設計對於資深的c 程式設計師可能並不陌生,特別是用gcc做c 程式開發的,因為可以說gcc這個編譯器是實現c 11標準的最全的編譯器。不說題外話了,先介紹一下模板元...