硬鏈接和軟鏈接是面試中經常被問到的問題,這里我們來總結一下他們的具體區別
1.是否為同一個文件
硬鏈接:是同一個文件,首先在自己的工作目錄下創建一個文件,然后進行鏈接的創建。然后用ls -li查看文件的屬性,可以看到inode節點編號和鏈接數一模一樣,文件的 inode 值,你可以簡單把它想成 C 語言中的指針。它指向了物理硬盤的一個區塊,事實上文件系統會維護一個引用計數,只要有文件指向這個區塊,它就不會從硬盤上消失。
軟連接:不是同一個文件,首先創建一個文件,然后做軟鏈接,用ls -li查看屬性,你會發現,這個軟鏈接的 inode 竟然不一樣啊,並且它的文件屬性上鏈接數也不一樣,這就說明它與之前我們創建的兩個文件根本不是一個類型。
2.是否可以跨分區做鏈接?
硬鏈接不可以跨分區
軟連接可以跨分區
3.鏈次數的增加
硬鏈接增加鏈接數
軟連接不增加
4.inode節點編號
硬鏈接增加
軟鏈接不增加
5.原始文件刪除鏈接書否刪除
硬鏈接不刪除
軟連接不刪除
6.鏈接文件大小
硬鏈接一樣大
軟鏈接不一樣大
7.是否支持目錄
硬鏈接不支持目錄
軟連接支持目錄
8.鏈接相對路徑寫法不一樣
硬鏈接寫絕對相對路徑
軟鏈接寫相對路徑根據生成鏈接文件的路徑