Linux中的硬鏈接和軟鏈接介紹和實驗

    在Linux中,鏈接分爲硬鏈接和軟鏈接,軟鏈接又稱爲符號鏈接(Symbolic Link),在不帶任何參數的情況下,使用ln命令創建的是硬鏈接。

    硬鏈接:硬鏈接是通過索引節點來進行鏈接的。在Linux的文件系統中,保存在磁盤分區種的文件不管是什麼類型的文件,都會爲它分配一個編號,這個編號被稱爲索引節點編號(Inode Index)或Inode。多個文件名指向同一個索引節點(Inode),一般這種鏈接就稱爲硬鏈接。硬鏈接的作用之一是允許一個文件擁有多個有效路徑名。這樣用戶可以建立硬鏈接到重要的文件,以防止“誤刪”源數據。創建硬鏈接源文件必須存在。並且硬鏈接只能建立文件的硬鏈接,不可以是目錄。硬鏈接相當於文件的另外一個入口。使用ln命令可以直接創建。

    軟鏈接:又稱爲符號鏈接。類似於Windows中的快捷方式,它實際上是一個特殊的文件。在軟鏈接中。軟鏈接文件實際上就是一個文本文件,這個文件中包含有軟鏈接指向另一文件的位置信息內容,因此,通過訪問這個“快捷方式”就可以迅速定位到軟鏈接所指向的原來的文件實體。使用ln -s。

    下面做幾個實驗:

    首先我們在普通用戶guixian001的家目錄創建guixian001文件。使用vi加入Hello!I am guixian001!內容。

    [guixian001@localhost ~]$ touch guixian001
    [guixian001@localhost ~]$ vi guixian001  #添加內容Hello!I am guixian001!

     創建guixian001的硬鏈接文件guixian001_hard_link,和軟鏈接文件guixian001_soft_link。使用ls -li查看。

wKioL1VVRRXgxdP0AAKuYGgjhGE895.jpg

    需要注意的是,我們可以看到guixian001和guixian001_hard_link最前面的數字相同,這個就是我們剛剛說的Inode所以節點。也就是說硬鏈接和源文件是Inode是相同的。在第三列可以看到數字2,就是說這個文件被鏈接了2次(guixian001和guixian001_hard_link加起來2次)。

    鏈接總結:

    ⒈刪除軟鏈接guixian001_soft_link,實際軟鏈接就相當於一個快捷方式文件,所以刪除軟鏈接對guixian001,和guixian001_hard_link沒有影響。

    ⒉刪除硬鏈接guixian001_hard_link,對guixian001,guixian001_soft_link沒有影響。

    ⒊刪除原文件guixian001,對硬鏈接沒有影響,實際上這個文件還沒有真正刪除(還存儲在硬盤中),軟鏈接會失效(目標沒有沒有了)。截圖如下:

wKiom1VVRgrAIq6iAAED8ziXOXE844.jpg

    ⒋同時刪除原文件guixian001和硬鏈接文件guixian001_hard_link,這個文件會真正刪除。

References:

    1.老男孩Linux教程

Author:Chenguixian(guixian001)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章