硬連接(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)
示例:
若是以爲不錯的話能夠點贊關注哦! 謝謝