Linux基礎:Linux下硬連接與軟鏈接有什麼不一樣

linux硬連接和軟連接的區別node

1.原理上:linux

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


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


2.使用限制上:it

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

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

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

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

b:能夠跨文件系統di

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

3.命令

硬連接:ln 源文件 連接名

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

相關文章
相關標籤/搜索