?
文件都有文件名與數據,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號即索引節點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 號尋找正確的文件數據塊。
?
為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。
?
硬鏈接
link 源文件名 新文件名
ln 源文件名 新文件名
?
stat 文件名 #查看文件信息
ls -li? #查看目錄下文件的硬鏈接數
liu@liu:~/code1$ ls -li
總用量 12
525214 -rw-r--r-- 1 liu liu ? 14 Aug 22 15:14 2.txt
528256 lrwxrwxrwx 1 liu liu ? ?5 Aug 22 17:20 a -> a.txt
527446 -rw-r--r-- 1 liu liu ? 20 Aug 22 17:21 a.txt
525200 drwxr-xr-x 2 liu liu 4096 Aug 22 14:58 code
?
# 硬鏈接的特點:
? 1.只能對已存在的文件進行創建;
? 2.不能對交叉文件系統進行硬鏈接的創建;
? 3.不能對目錄進行創建,只可對文件創建;
? 4.刪除一個硬鏈接文件并不影響其他有相同inode 號的文件。
一個 inode 號對應多個文件名,則稱這些文件名為硬鏈接
-
軟連接
軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接類似快捷方式
ln -s 源文件 目標文件。
?
軟連接的特點:
- ? 軟鏈接有自己的文件屬性及權限等;
- ? 可對不存在的文件或目錄創建軟鏈接;
- ? 軟鏈接可交叉文件系統;
- ? 軟鏈接可對文件或目錄創建;
- ? 創建軟鏈接時,鏈接計數 inode 不會增加;
- ? 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接
?
Other:修改軟硬連接都會 更改到源文件內容