鏈接文件是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編號的,它們最終是指向的一個文件,它們的文件大小也是一樣的。
不要給鏈接文件再創建另一個鏈接文件,這樣會導致邏輯混亂,可以給一個文件創建多個鏈接文件,這樣會更好。