Linux中的硬連接和軟連接的概念、區別及用法

概念:

硬連接(hard link):node

    A是B的硬連接(A和B都是文件名),則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不一樣的文件名,兩個文件名指向同一個文件,A和B對文件系統來講是徹底平等的。若是刪除了其中一個,對另一個沒有影響。每增長一個文件名,inode節點上的連接數增長一,每刪除一個對應的文件名,inode節點上的連接數減一,直到爲0,inode節點和對應的數據塊被回收。注:文件和文件名是不一樣的東西,rm A刪除的只是A這個文件名,而A對應的數據塊(文件)只有在inode節點連接數減小爲0的時候纔會被系統回收。post

軟連接(soft link):spa

    A是B的軟連接(A和B都是文件名),A的目錄項中的inode節點號與B的目錄項中的inode節點號不相同,A和B指向的是兩個不一樣的inode,繼而指向兩塊不一樣的數據塊。可是A的數據塊中存放的只是B的路徑名(能夠根據這個找到B的目錄項)。A和B之間是「主從」關係,若是B被刪除了,A仍然存在(由於兩個是不一樣的文件),但指向的是一個無效的連接。blog

主要區別、限制:字符串

硬連接:it

  a.不能對目錄建立硬連接,緣由有幾種,最重要的是:文件系統不能存在連接環(目錄建立時的".."除外,這個系統能夠識別出來),存在環的後果會致使例如文件遍歷等操做的混亂(du,pwd等命令的運做原理就是基於文件硬連接,順便一提,ls -l結果的第二列也是文件的硬連接數,即inode節點的連接數)class

  b:不能對不一樣的文件系統建立硬連接,即兩個文件名要在相同的文件系統下。原理

  c:不能對不存在的文件建立硬連接,由原理便可知緣由。file

軟連接:遍歷

  a.能夠對目錄建立軟連接,遍歷操做會忽略目錄的軟連接。

  b:能夠跨文件系統

  c:能夠對不存在的文件建立軟連接,由於放的只是一個字符串,至於這個字符串是否是對於一個實際的文件,就是另一回事了

ln 語法格式 

硬連接:ln 源文件 連接名   

軟連接:ln -s 源文件 連接名

 注意:  連接的源文件路徑要寫絕對路徑)

 不然會報錯(no such file or diretory)

示例:

 

 

 

 若是以爲不錯的話能夠點贊關注哦!  謝謝

相關文章
相關標籤/搜索