国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

詳解Linux ln 命令

2019-10-26 18:59:45
字體:
來源:轉載
供稿:網友

Linux 中的文件分為 Hard Link 和 Symbolic Link 兩種。Hard Link 文件又被稱為硬鏈接文件、實體鏈接文件,Symbolic Link 文件則常被稱為符號鏈接、軟鏈接文件。

ln 命令用來在文件之間建立鏈接。在介紹 ln 命令前,讓我們先來搞清楚究竟什么是硬鏈接,什么又是軟鏈接。

Hard Link(硬鏈接)

我們知道,在 Linux 系統中,每個文件對應一個 inode,文件的內容在存儲在 inode 指向的 data block 中。要讀取該文件的內容,需要通過文件所在的目錄中記錄的文件名找到文件的 inode 號,然后通過 inode 找到存儲文件內容的 data block(參考《Linux 文件與目錄》)。

也就是說,文件名存儲在目錄中,inode 號執行文件存儲的內容,文件名和 inode 之間有一個對應關系。那么多個文件名可不可以同時指向同一個 inode 呢?答案是可以的,這就是硬鏈接!從本質上來說,硬鏈接只是在目錄下新添加了一個文件名,這個文件名與一個已有文件的 inode 相關聯。讓我們也通過 /etc/crontab 文件來進行觀察:

$ ll -i /etc/crontab131213 -rw-r--r-- 1 root root 722 Nov 16 2017 /etc/crontab

使用 ln 命令在當前目錄下創建一個 /etc/crontab 文件的硬鏈接,然后觀察其文件屬性:

$ sudo ln /etc/crontab .$ ll -i /etc/crontab crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab

這兩個文件名關聯的 inode 號完全相同,都是 131213,所以它們指向的是同一個文件。同時請注意文件屬性中的第三個字段,由 1 變成了 2。這個字段被稱為 "鏈接數",它說明有多少個文件名鏈接到同一個文件的 inode。

另外需要注意的一點是上面所有輸出中的第二個字段中的第一位,它們都是 "-",它說明這個文件的類型為普通文件,鏈接類型為硬鏈接。

我們可以通過下圖來理解硬鏈接在文件系統中的實現方式:

硬鏈接的特點

幾乎不額外占用空間 只要還有一個文件名引用著文件,文件就不會被真正刪除

由于硬鏈接只是在目錄中添加了一條包含文件名和 對應 inode 的記錄,所以它幾乎不會消耗額外的磁盤容量。
另外在刪除硬鏈接所關聯的文件時,其實只是刪除了一條目錄中的記錄,真正的文件并不受影響。只有在刪除最后一個硬鏈接時才會真正刪除文件的內容數據。

硬鏈接的局限性

不能跨文件系統創建硬鏈接 不能鏈接目錄

由于這兩個限制,實際使用中硬鏈接并沒有軟鏈接使用的廣泛,下面我們看看究竟什么是軟鏈接。

Symbolic Link(軟鏈接)

軟鏈接的實現方式與硬鏈接有本質上的不同。創建軟鏈接時會創建一個新的文件(分配一個 inode 和對應的 data block),新文件的 data block 中存儲了目標文件的路徑。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣强县| 惠州市| 长沙市| 阿尔山市| 古浪县| 扎赉特旗| 宁国市| 杂多县| 孟连| 贵德县| 海林市| 大田县| 乌兰浩特市| 西乡县| 皮山县| 安康市| 遂平县| 宝山区| 通渭县| 灵宝市| 白城市| 会宁县| 垦利县| 临潭县| 如皋市| 奉新县| 石泉县| 大埔区| 德令哈市| 德庆县| 汉阴县| 庄浪县| 卢龙县| 武川县| 天台县| 鄂伦春自治旗| 东宁县| 仁布县| 新干县| 五家渠市| 封开县|