硬鏈接與軟鏈接

1、關于硬鏈接和軟鏈接是什么

  硬鏈接與軟鏈接是 Linux 文件系統中的一個重要概念,其涉及文件系統中的索引節點 (index node 又稱 inode),而索引節點對象是 Linux 虛擬文件系統 (VFS) 的四個基本概念之一。通過剖析硬鏈接與軟鏈接的聯系與區別,我們可更好的了解 Linux 中 VFS 這一通用文件模型。

(1)區分硬鏈接和軟鏈接

  那什么叫做硬鏈接呢?在維基百科上沒有相關的解釋,也就是說沒有這個頁面,所以在百度百科上娛樂一下,這個概念是這樣說的:

  一個文件有幾個文件名(用ln命令實現多個文件名),我們就說該文件的鏈接數為幾。由定義可知,此鏈接數可以是1, 這表明該文件只有一個文件名。

  總之,硬鏈接就是讓多個不在或者同在一個目錄下的文件名,同時能夠修改同一個文件,其中一個修改后,所有與其有硬鏈接的文件都一起修改了。

  其實我們換言之,創建硬鏈接的時候都指向同一個文件,即使把原來創建的源文件名刪除之后,創建硬鏈接之后的文件也是照樣能訪問,因為它們兩個的inode節點都是一樣的,這就好比一個人你的身份證號碼是你唯一的,其編號是什么無所謂,只要證明你是唯一就行,只不過就是多起兩個名字,硬鏈接就好比一個文件多起了一個名字,但只要是你的inode節點是唯一就ok了。這其實就是對應于同一文件系統上一個物理文件

  那什么叫做軟鏈接呢?這一次在維基百科上有了答案的相關解釋,它是一個特殊的文件,其包含一條絕對路徑和相對路徑的形式指向其它文件或目錄的引用。

  符號鏈接的操作是透明的:對符號鏈接文件進行讀寫的程序會表現得直接對目標文件進行操作。某些需要特別處理符號鏈接的程序(如備份程序)可能會識別并直接對其進行操作。

(2)它們的限制

  所謂的限制,其實還不如說是它們的注意事項:

  a、硬件接不能夸分區,也只有在同一文件系統的文件之間才能創建鏈接。

  b、硬鏈接適用與同一卷的同一級別,不能給目錄創建硬鏈接。

  c、軟鏈接是能夸分區的,但是一旦目標程序被刪除之后,就不能查看文件內容了,雖然還指向哪里。

  d、軟鏈接可以指向一個空的目標文件,可以自己循環自己,但刪除自己對其目標文件并不受影響。

2、命令

  其實硬、軟鏈接的命令是一樣的,都是ln,只不過后者加-s才能標明這是創建軟鏈接的方式

  硬鏈接命令格式:ln filename [linkname]

  軟鏈接命令格式:ln -s filename [linkname]

  創建硬鏈接的格式以及它的限制:

圖像 3.png

  創建軟鏈接以及它的限制

圖像 4.png

  總結:無論硬鏈接還是軟鏈接,各有各的好處,可以看自己的習慣以及情況來用


原創文章,作者:劉 祥宇,如若轉載,請注明出處:http://www.www58058.com/53015

(0)
劉 祥宇劉 祥宇
上一篇 2016-10-20
下一篇 2016-10-20

相關推薦

  • Lvm基本應用,擴展及縮減實現

    什么是LVM LVM是Logical Volume Manager的簡寫。其是Linux環境下對磁盤分區進行管理的一種機制。LVM由Heinz Mauelshagen在Linux 2.4內核上實現。其主要作用是在不損壞磁盤數據的情況下對磁盤空間進行增加,縮減。LVM的做法是將幾塊物理硬盤通過軟件的方式組合成一塊空間相對大的Volume Group,簡稱VG,…

    Linux干貨 2016-09-08
  • Linux初識

    N22-熊寶–http://www.www58058.com/author/echeng1514 –馬哥教育網絡班22期–第1周課程練習   1、描述計算機的組成及其功能: 2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別: Linux有眾多的發行版,都是基于不同的內核版本,做了許多改…

    Linux干貨 2016-08-15
  • linux發展歷程簡述

     linux發展歷程簡述 概述       本文寫的linux 的發展歷史,閱讀本文你可以知道:           1.   linux的發音           2. &nbs…

    Linux干貨 2016-10-14
  • 查找find及壓縮與解壓

    find  根據時間戳:以“天”為單位;              -atime [+|-]#,                #: [#,#+1)   2 那就是大于等于二天小于…

    2017-08-12
  • shell 腳本中數組的總結

    描述:   變量是存儲單個元素的內存空間,而數組是多個變量的集合,是一個連續的空間;但整個數組只能有 的名字。   數組內的數據都有指定的索引,從而找到數組內所指定的數據。索引的編號是從0開始的,依次遞增(0,1,2,3,…),這種方式叫數值索引。格式為:數組名[索引];${ARRAY_NAME[INDEX]}。索引也支持自定…

    Linux干貨 2016-08-29
  • 圖文演示Netmeeting的三大功能

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/153578     可能很多朋友對Netmeeting有一定認識,但我想真正用過的朋友應該不多,因為類似的軟件太多太多了,所以Netmeet…

    Linux干貨 2015-03-25
欧美性久久久久