Unix操作系統有很多值得學習的地方,這裡我們主要介紹Unix操作系統中的硬鏈接與符號鏈接的區別,大家一起來學習下吧!硬鏈接典型的特征就是,所有文件的i節點號是一樣的;硬鏈接不是文件拷貝,只是增加了一個i節點鏈接(或者說增加了一個入口指針),所有的硬鏈接都是權力(權限,大小)均等的,修改任意一個,其他也被修改。
i節點結構中有一個很重要的字段就是鏈接數。所以刪除一個文件,不一定就會真的釋放其i節點,刪除文件其實是在目錄文件中,根據文件名找到對應的i節點,先把i節點鏈接數減一,再刪除目錄結構中文件記錄,當且僅當i節點接數為0時,才真的釋放對應的i節點。
總結一下硬鏈接與符號鏈接的區別:
1、硬鏈接是通過i節點來關聯文件;
不同的文件系統都有自己獨立的i節點,所以硬鏈接不能跨越文件系統,不能指向目錄;
2、符號鏈接是通過文件名來關聯文件;
即便是原文件刪除,符號鏈接依然可以存在,但是指向是空。只是可以獨立於原文件而存在,新建文件後可以自動指向新的文件。符號鏈接可以跨越文件系統,可以指向目錄。
3、硬鏈接用ln創建,符號鏈接用ln -s創建;
4、符號鏈接類似windows裡的快捷方式,硬鏈接有點類似共享;
5、lstat()可以獲取鏈接文件本身的信息,stat()函數獲取指向文件的信息。
Unix操作系統的鏈接的知識,我們就講解到這裡了。