Linux 鏈接文件講解


鏈接文件是Linux文件系統的一個優勢。如需要在系統上維護同一文件的兩份或者多份副本,除了保存多份單獨的物理文件之外,可以采用保留一份物理文件副本和多個虛擬副本的方式,這種虛擬的副本就成為鏈接。鏈接是目錄中指向文件真實位置的占位符。在Linux中有兩種不同類型的文件鏈接:

1.符號鏈接。

2.硬鏈接

 

符號連接就是一個真實的文件,他指向存放在虛擬目錄結構中的某個地方的另一個文件,這兩個通過符號鏈接在一起的文件,內容並不相同。

可以通過ln -s來創建一個文件的符號鏈接:

ln -s  目標文件    符號鏈接名稱文件

如下所示:  ln -s  test.txt   ln_s_test.txt    test.txt是需要鏈接指向的源文件,而ln_s_test.txt是符號鏈接文件,需要創建的文件。

-> 符號代表的是該文件鏈接到文件 test.txt。

通過上圖可以看出,鏈接文件的inode編號是8,而被鏈接的源文件的inode是0,inode不同,那么說明本身這兩個文件的內容是不一樣的,是兩個不同的對象。

 

硬鏈接:硬鏈接會創建獨立的虛擬文件,其中包含了原始文件的信息及位置。但從根本上講是同一個文件。引用硬鏈接文件等同於引用了源文件。

創建硬鏈接文件使用ln命令,不需要加任何參數。

如圖所示:

給文件code_test創建了一個硬鏈接文件ln_code_test的命令是ln code_test   ln_code_test

其中ln_code_test是硬鏈接的名稱,而code_test是源文件名稱。

這兩個文件的inode都是0,說明帶有硬鏈接的文件是共享inode編號的,它們最終是指向的一個文件,它們的文件大小也是一樣的。

不要給鏈接文件再創建另一個鏈接文件,這樣會導致邏輯混亂,可以給一個文件創建多個鏈接文件,這樣會更好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM