軟連接和硬連接的概念和區別


軟連接和硬連接的概念

軟連接
  命令:  ln -s 原文件 目標文件
  特征
    1.相當於windows的快捷方式
    2.只是一個符號連接,所以軟連接文件大小都很小
    3.當運行軟連接的時候,會根據連接指向找到真正的文件,然后執行
    4.所有軟連接文件的權限是777,而真正的權限是由指向的那個文件決定的
    5.原文件丟失,軟連接無法訪問,會報找不到的錯誤
    6.ls -al以后,軟連接后面箭頭指向的是原文件


硬連接
  命令:  ln 原文件 目標文件
  特征
    1.原文件和連接文件的屬性完全一樣
    2.連接文件和原文件的關系類似於:復制+同步更新
    3.當原文件丟失,硬連接文件還可以訪問
    4.不能跨分區,不能針對目錄使用
    5.原理:
      原文件和硬鏈接文件的i節點號是相同的(ls -i),1個文件名對應一個i節點,1個i節點可以通過多個文件名訪問,所以,他們的屬性完全相同,並且修改了其中一個的內容另一個也會跟着修改

 
軟連接和硬連接的區別

  在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號inode 。

 

  1、軟連接,其實就是新建立一個文件,這個文件就是專門用來指向別的文件的(那就和windows 下的快捷方式的那個文件有很接近的意味)。軟鏈接產生的是一個新的文件,但這個文件的作用就是專門指向某個文件的,刪了這個軟連接文件,那就等於不需要這個連接,和原來的存在的實體原文件沒有任何關系,但刪除原來的文件,則相應的軟連接不可用(cat那個軟鏈接文件,則提示“沒有該文件或目錄“)

 

 

  2、硬連接是不會建立inode的,他只是在文件原來的inode link count域再增加1而已,也因此硬鏈接是不可以跨越文件系統的。相反是軟連接會重新建立一個inode,當然inode的結構跟其他的不一樣,他只是一個指明源文件的字符串信息。一旦刪除源文件,那么軟連接將變得毫無意義。而硬鏈接刪除的時候,系統調用會檢查inode link count的數值,如果他大於等於1,那么inode不會被回收。因此文件的內容不會被刪除。

 

  3、硬鏈接實際上是為文件建一個別名,鏈接文件和原文件實際上是同一個文件。可以通過ls -i來查看一下,這兩個文件的inode號是同一個,說明它們是同一個文件;而軟鏈接建立的是一個指向,即鏈接文件內的內容是指向原文件的指針,它們是兩個文件。

 

  4、軟鏈接可以跨文件系統,硬鏈接不可以;

 

  5、軟鏈接可以對一個不存在的文件名(filename)進行鏈接(當然此時如果你vi這個軟鏈接文件,linux會自動新建一個文件名為filename的文件),硬鏈接不可以(其文件必須存在,inode必須存在);

 

  6、軟鏈接可以對目錄進行連接,硬鏈接不可以。

 

  7、兩種鏈接都可以通過命令 ln 來創建。ln 默認創建的是硬鏈接。

 

  8、使用 -s 開關可以創建軟鏈接。

 

原文:https://www.cnblogs.com/413xiaol/p/6986473.html

原文:https://www.cnblogs.com/wendyy/p/9324181.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM