1. 程式人生 > >Linux學習筆記之1——檔案和目錄管理(硬連線和軟連線)(連結檔,相當於快捷方式)

Linux學習筆記之1——檔案和目錄管理(硬連線和軟連線)(連結檔,相當於快捷方式)

在這節將要學習linux的連線檔,在之前用"ls -l" 檢視檔案屬性的命令時, 其中第二個屬性是連線數。那麼這個連線數是幹什麼的?這就要理解inode。

    先說一下檔案是怎麼儲存的。檔案儲存在硬碟上,硬碟的最小儲存單位叫做"扇區"(Sector),每個扇區儲存512位元組(相當於0.5KB)。作業系統讀取硬碟的時候,不會一個個扇區地讀取,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block)。"塊"的大小,最常見的是4KB,即8個“扇區”組成一個“塊"。檔案資料都儲存在“塊”中,那麼就得有個地方來儲存檔案的資訊(比如建立者,建立時間等),這個區域就叫“inode”,即索引節點。


    當建立一個檔案時,系統分配一個inode及能夠裝載檔案大小的blocks給它,inode記錄檔案的屬性,包括block的位置,block記錄檔案內容。

    當建立一個目錄時,系統分配一個inode和一個block,若此目錄下的檔案過多的話,會開闢一個新的block給它。inode記錄目錄的屬性,block記錄這個目錄下的所有檔案和子目錄對應的inode,通過block可以找到某個檔案的inode位置,從而找到檔案內容。

    這裡可以通過“stat +檔名” 的命令來檢視檔案inode的資訊,如下圖:

 

    然而,在硬碟的同一個檔案可以通過不同的路徑來訪問它。接下來要講的軟、硬連線就是建立在inode和block的關係之上。

硬連線:一般情況下,一個檔名對就一個inode,但Linux允許多個檔名對應同一個inode,也就是說通過不同的檔名可以訪問同一個內容。刪除一個檔名不影響其它檔名的訪問。語法如下:

 

ln 原始檔 目標檔案(要建立的檔案)
#這裡只能是檔案,不可以是目錄

 例如:

 

先檢視一下當前一個叫yum.sh文件的連線數,如圖所示為2

執行新增硬連線的指令:

  

執行指令之後,在開啟目錄可以發現,出現新的檔案yum_hLink.sh

再檢視yum.sh的連線數,如下圖所示,連線數增加了一個:

 

軟連線(或符號連結):若檔案(目錄)A是檔案(目錄)B的軟連線,A的內容是B的路徑,想當於A是B的快捷方式。當刪除A時,不影響B的訪問;當刪除B時,就會報錯。

語法:

 

ln -s 源文檔案或目錄 目標檔案或目錄
#軟連線可以是目錄

例如,test 是一個目錄:

 

執行指令後,當前目錄下多了一個test_sLink目錄

檢視連線數,發現test 目錄的連線數並沒有增加,而test_sLink 以 "->"形式來表示是test的軟連線:

 

轉載:https://www.cnblogs.com/jiangu66/p/3206376.html