下面是Linux系統軟件底層的存儲結構,我們將從底層上來去解釋Linux系統下的軟硬連接文件
<一>: 解釋(底層)
硬鏈接,其實從底層數據上來看, 硬鏈接其實就是增加了一個目錄項。底層對應的inode table、數據區中的值是不變的, 也不會重新創建。
軟鏈接, 其實從底層接上看, 軟鏈接其實就是相當於重新創建了一個文件,, 無論是目錄項,inode table,以及數據區都是重新重建的,而這個文件功能比較特殊, 它是用來指向另外一個文件的。
<二>:命令的使用
硬鏈接命令:
ln 用來創建鏈接 link英文單詞的縮寫
ln 默認添加的就是硬鏈接
ln 文件名 鏈接名
創建3個硬鏈接,3個硬鏈接的底層的id號是一樣的, 所以這三個文件指向的inode號表示一樣的, 創建的文件其實只是在目錄項中添加一項。
軟鏈接命令:
ln -s 文件名 鏈接名 // 只需要加一個 -s 選項
創建2個軟鏈接,2個軟鏈接的底層的id號是不一樣的,所以這兩個文件底層的對應inode表以及數據塊區都是不同的。
軟鏈接和硬鏈接的區別
硬鏈接是不允許跨文件系統建立的
軟連接是可以跨文件系統建立的
硬鏈接是不允許給目錄文件建立
軟鏈接是允許給目錄文件建立
軟鏈接和硬鏈接的注意事項:
在建立軟鏈接的時候, 有一個相對的路徑的問題
ln -s 原始文件的相對路徑(相對於軟鏈接文件的路徑) 軟鏈接文件
ln -s 文件名 連接名
如果這裏的文件名是相對路徑的時候, 這裏相對的是鏈接名所在的目錄, 所以你要根據鏈接名所在的目錄, 來重新寫文件名所在的路徑。
爲了防止建立軟鏈接時出錯, 文件名要寫成絕對路徑。這樣肯定就錯不了。