歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下的softlink和hardlink

Linux下的softlink和hardlink

日期:2017/2/28 15:54:11   编辑:Linux教程

Linux中包括兩種鏈接:硬鏈接(hard link)和軟鏈接(soft link),軟鏈接又稱為符號鏈接(symbolic link)

創建命令:
ln -s softlink destfile/directory #建立軟連接
ln hardlink destfile #建立硬連接

inode
在Linux系統中,內核為每一個新創建的文件分配一個Inode,每個文件都有一個惟一的inode號,我們可以將inode簡單理解成一個指針,它永遠指向本文件的具體存儲位置。文件屬性保存在inode裡,在訪問文件時,inode被復制到內存在,從而實現文件的快速訪問。系統是通過inode來定位每一個文件。

硬鏈接(hard link)
硬鏈接實際上是一個指針,指向源文件的inode,系統並不為它重新分配inode。硬連接不會建產新的inode,硬連接不管有多少個,都指向的是同一個inode節點,只是新建一個hard link會把結點連接數增加,只要結點的連接數不是0,文件就一直存在,不管你刪除的是源文件還是連接的文件。只要有一個存在,文件就存在(其實就是引用計數的概念)。當你修改源文件或者連接文件任何一個的時候,其他的文件都會做同步的修改。

軟鏈接(soft link)
軟鏈接最直觀的解釋:相當於Windows系統的快捷方式,是一個獨立文件(擁有獨立的inode,與源文件inode無關),該文件的內容是源文件的路徑指針,通過該鏈接可以訪問到源文件。所以刪除軟鏈接文件對源文件無影響,但是刪除源文件,軟鏈接文件就會找不到要指向的文件(可以類比Windows上快捷方式,你點擊快捷方式可以訪問某個文件,但是刪除快捷方式,對源文件無任何影響)。

區別
1. 軟鏈接和源文件操作權限不一樣;硬鏈接與源文件操作權限完全一致。
2. 軟鏈接可以跨文件系統(分區);由於inode的限制以及文件系統的可卸載性,硬連接不容許跨文件系統。
3. 軟連接可以對一個不存在的文件名進行連接;硬鏈接不可以。
4. 軟連接可以對目錄進行連接;硬鏈接不可以。

Copyright © Linux教程網 All Rights Reserved