編碼的世界 / 優質文選 / 生物

Linux下的softlink和hardlink


2021年7月13日
-   

Linux中包括兩種鏈接:硬鏈接(hard link)和軟鏈接(soft link),軟鏈接又稱為符號鏈接(symbolic link) 創建命令: ln -s destfile/directory softlink   #建立軟連接  ln destfile hardlink                   #建立硬連接 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. 軟連接可以對目錄進行連接;硬鏈接不可以。

熱門文章