硬鏈接與軟鏈接的區別

硬鏈接與軟連接

      

        本文僅用于個人學習參考:

        簡單介紹了硬鏈接與軟連接的區別。

        硬鏈接

        關于硬鏈接,也就是是說硬盤當中有個文件,在這個文件最初創建的時候有個文件名,由于各種原因,比如說原路徑比較難打,我們又創建了一個硬連,放在比較容易找到的位置。

        這一點本人的理解為:來到馬哥基地這里有兩個大門,左邊一個能進來,右邊那個也是沒問題的,只是左右名字不同罷了。

        硬鏈接命令語法:

        ln  filename [linkname]

                   filename: [創建出的鏈接名 ]:

                  linkname:需要被鏈接的文件

             

        硬鏈接特點:

        如上邊所說,馬哥都是同一位馬哥,只是稱呼不同。

    ]# touch 11.22           /*首先創建一個文件*/
    ]# ln 11.22 22.11        /*然后為該文件創建一個硬鏈接*/ 
    ]# ls -l                           /*對比原文件與鏈接文件*/
        total 0
        -rw-r--r-- 2 root root  0 Oct 20 10:28 11.22
        -rw-r--r-- 2 root root  0 Oct 20 10:28 22.11
        drwxr-xr-x 5 root root 31 Oct 20 10:17 kai
  •         在這個圖片中可以清楚的看到,原來的文件與我們使用 ln(硬鏈接)命令創建出來的數據塊(硬鏈接并不生成文件,下邊內容為了容易稱呼,我說成硬鏈接文件)除了文件名,其余都是一模一樣的。

  •         硬鏈接只能在同一分區內創建。硬鏈接不能針對與目錄使用。

            與cp的文件相似,不過硬鏈接文件可以同步更新,就算源文件丟失,硬鏈接也能訪問。

  •         當然,如果源文件與鏈接文件同時被刪除,那么該文件就徹底沒了。

 

        軟連接

        軟連接相當于windows的快捷方式,當源文件丟失,那么快捷方式也會失去作用。

        
        軟連接命令語法:

            ln -s filename [linkname]

                               filename: [創建出的鏈接名 ]:

                              linkname:需要被鏈接的文件

        軟連接特點:

    軟鏈接的須相對路徑設定必指定的是針對與目標文件的相對路徑,相對路徑可以防止源文件地址的改變。

# ln -s ../home/hua/ hua.1

# ls -l
lrwxrwxrwx  1 root root       12 Oct 20 11:29 hua.1 -> ../home/hua/

   

        軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊。

        因此軟鏈接的創建與使用沒有類似硬鏈接的諸多限制:

  •  軟鏈接有自己的文件屬性及權限等;

  • 可對不存在的文件或目錄創建軟鏈接;

  • 軟鏈接可交叉文件系統;

  • 軟鏈接可對文件或目錄創建;

  • 創建軟鏈接時,鏈接計數 i_nlink 不會增加;

  • 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)

        如上所說如果軟連接的原文件被刪除,那么相關鏈接就會死鏈。

    死鏈.png

         當然軟鏈接的用戶數據也可以是另一個軟鏈接的路徑,其解析過程是遞歸的。但需注意:軟鏈接創建時原文件的路徑指向使用相對路徑較好。硬鏈接創建的時候可以指定絕對路徑、相對路徑,或者直接就不指定了,因為硬鏈接創建完成之后,就相當于與原文件斷絕了關系,原文件位置的改變并不會影響到硬鏈接。

原創文章,作者:ly,如若轉載,請注明出處:http://www.www58058.com/53090

(0)
lyly
上一篇 2016-10-20 11:50
下一篇 2016-10-20 13:09

相關推薦

  • Linux用戶及用戶組管理

    馬哥網絡教育22期第三周練習 Linux用戶及用戶組管理 Linux是個多用戶多任務的分時操作系統,所有一個要使用系統資源的用戶都必須先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;另一方面也能幫助用戶組織文件,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的…

    Linux干貨 2016-09-19
  • 少走冤枉路!帶你走過SNMP的那些坑

    SNMP(Simple Network Management Protocol)即簡單網絡管理協議,是在網絡與系統監控領域中,最常使用的一種數據采集技術。盡管這個協議非常簡單,但在大規模IT環境監測中,還是經常會碰到各種坑,因此優云開源了一套友好的SNMPAPI,并通過本文簡單介紹這套API中的一些特點,希望幫助各位運維同仁提前規避一些問題。 特點[0].&…

    2016-06-22
  • Linux系統啟動流程

        下面按照系統的啟動順序來進行逐一的講解。 一、POST     當我們按下開機的電源后,主板上的芯片組會首先向CPU發出一個reset指令,之后待芯片組檢測到電源供電穩定后便撤去reset指令,CPU就會跳轉到BIOS中的啟動代碼位置; BIOS首先要檢測關鍵設備(如內顯…

    Linux干貨 2015-05-23
  • Btrfs文件系統

    一:概述     1.1簡介         Btrfs被稱為是下一代Linux文件系統。通常念成 Butter FS,Better FS 或B-tree FS。它采用了很多先進的文件系統設計,不僅解決了 ext2/3的擴展性問題,支持寫時…

    Linux干貨 2016-04-19
  • CentOS 5,6 系統啟動流程詳解

        一、linux 組成介紹          1.linux 組成:             ? Lin…

    Linux干貨 2016-09-11
  • CentOS7.3安裝Jumpserver0.3.2

    CentOS7.3安裝Jumpserver0.3.2 公司服務器前端增加堡壘機,選用開源的jumpserver 軟件環境CentOS Linux release 7.3.1611 python 2.7.5 mysql5.7 安裝git yum -y install git 克隆jumpserver # cd /opt # git clone https://…

    Linux干貨 2017-07-11
欧美性久久久久