Linux 常用基本命令 ln

樹上騎個猴發表於2017-07-13

    這篇部落格講解Linux連結檔案 ln。

    Linux連結檔案類似於Windows下的快捷方式

    連結檔案分為軟連結和硬連結。 

  • 軟連結:軟連結不佔用磁碟空間,原始檔刪除則軟連結失效。
  • 硬連結:硬連結只能連結普通檔案,不能連結目錄。
    使用格式:
  • ln 原始檔 連結檔案
  • ln -s 原始檔 連結檔案
    如果 沒有 -s 選項代表建立一個硬連結檔案,兩個檔案佔用相同大小的硬碟空間,即使刪除了原始檔,連結檔案還是存在的,所以-s 選項是更常見的形式。
    注意:如果軟連結檔案和原始檔不在同一個目錄,原始檔要使用絕對路徑,不能使用相對路徑。
    
    軟連結例:在目錄A下面有一個a.txt 檔案,裡面有內容"hello world ,hello bo!" 。使用 ln -s a.txt softlink_a.txt 命令生成一個連結檔案softlink_a.txt(下圖中淡藍色檔案),使用cat 命令檢視檔案內容"hello world ,hello bo" ,之後使用 mv 命令刪除掉原始檔 a.tx t。使用 ls 命令發現softlink_a.txt檔案變成紅色。在次使用 cat 命令檢視 softlink_a.txt內容時出現 “No such file or directory”,說明該連結已經失效。
    
   
  
    硬連結例:在目錄A下建立一個b.txt,寫入內容“hello ,I am b.txt!” ,之後使用命令 ln b.txt  hardlink_b.txt 。檢視hardlink_b.txt,與b.txt內容相同。這個時候修改hardlink_b.txt,檢視hardlink_b.txt內容“hello ,I am b.txt!I am old file!”。在檢視b.txt,內容與hardlink_b.txt檔案相同,可見該檔案的內容也得到修改。使用 rm b.txt 刪除b.txt。 這個時候在檢視 hardlink_b.txt,內容依舊不變。
    
    
    原理圖:
    
    
    上圖中 a.txx 指向檔案中的資料,軟連結softlink_a.txt 指向 a.txt。所以當a.txt 刪除後,軟連結失效。硬連結handlink_a.txt同樣指向資料塊,所以,當a.txt檔案刪除後,handlink_a.txt依舊指向檔案中的資料。

  

相關文章