小編這周接觸到了鏈接,那么重點來了,啥是鏈接呢小編覺得鏈接簡單來說就是一種共享的方式,比如我們去逛超市,超市的入口就是‘鏈接’。在Linux中,鏈接又分為軟連接和硬鏈接,想要了解他倆,就得先了解幾個基本概念。
一:Inode
我們知道文件包含數據和元數據,它的數據都存在block(“塊”)中,那它的元數據,比如說它的文件類型、權限、時間戳、連接數等也需要地方存儲呀,所以inode(中文索點)來了,他來存儲文件的這些元數據。下面我們可以通過stat命令查看一個文件的inode信息
這里我們查看了/etc/passwd文件的元數據信息。ls -l命令也會列出一些文件的元數據信息,如下圖所示:
由左至右分別為:權限、硬鏈接數、屬主、屬組、文件大小、最近更改時間、文件名)
其實最初當我們在安裝虛擬機創建分區并創建文系統的時候,就已經在文件系統的固定區域保留了inode節點區。我們可以通過下面的df -i命令查看某文件系統inode節點區域的大小及使用情況:
二:目錄項
雖然每個文件對應了唯一的inode號,但當文件經過我們刪刪改改之后,inode號就會變得雜亂無章,不利于我們的記憶。但我們人跟計算機不同,我們愛取名字,中華文化博大精深,家里的寵物什么的都不僅僅只有一個名字呢,所以我們給文件取了名字之后,再建立文件名跟inode號之間的對應,就引出了目錄項這個概念,強大的Linux把所有的文件和目錄構建成了一個倒立的樹狀結構,從根開始。所以我們只要確定了根目錄的inode號,就可以掌控整個文件系統
畫個圖來表達的更簡單一些:
三:硬鏈接
一般情況下,文件名和inode號碼是“一一對應“關系,每個inode號碼對應一個文件名。但是當多個文件名指向同一個inode號的這種情況就被稱為”硬鏈接”,小編覺得硬鏈接其實就是給現有的文件起了一個別名。
【1】創建硬鏈接
命令:ln 源文件 硬鏈接文件
【2】硬鏈接具體作用如下:
1.節省硬盤空間。同樣的文件,只需要維護硬連接關系,無需進行多重拷貝,大大節省硬盤空間。
2.重命名文件。重命名文件并不需要打開該文件,只需改動某個目錄項的內容就可以了。
3.刪除文件。刪除文件只需將相應的目錄項刪除,該文件的鏈接數減1,如果刪除目錄項后該文件的鏈接數為零,這時系統才把真正的文件從磁盤上刪除。
4.文件更新。先下載好一個新版本,然后修改里面同名文件的硬鏈接就行。
舉例作用3,小編覺得硬鏈接刪除文件在這里還是有必要提一下的,畢竟它不是像別的文件那樣刪除一個就可以徹底刪除的哦
小編覺得我們可以把文件比作一個超市,那么硬鏈接就是他的后門,只有把前后門都關掉,超市才會停止運營,也就是我們的文件才被徹底刪除,如下圖所示(簡單形象不)
【3】 硬鏈接特點
1. 只能對已存在的文件進行創建,否則就是下圖的no such file or directory!
2. 不能交叉文件系統進行硬鏈接的創建
3. 不能對目錄進行創建,只能對文件創建硬鏈接
4. 刪除一個硬鏈接并不影響其他具有相同inode號的文件
四:軟鏈接(symbolic link)
我們把軟鏈接也稱為符號鏈接,它有點類似于Windows的快捷方式。它不直接使用inode號作為文件指針,而是使用文件路徑名作為指針。軟鏈接有自己的inode,并在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統,也可以和目錄鏈接。
【1】軟連接原理:
【2】創建軟連接命令:ln -s 源文件 軟鏈接文件
【3】軟連接特點
1. 軟鏈接有自己的文件屬性及權限等
2. 軟鏈接可以對不存在的文件或目錄創建
3. 軟鏈接可以交叉文件系統
5. 創建軟鏈接時,鏈接計數不會增加
6. 刪除軟鏈接不會影響被指向的文件,但若指向的原文件被刪除,則成死鏈接。
小編總結:軟鏈接沒有硬鏈接那么多的限制,因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件進行鏈接。但是軟鏈接的缺點在于:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移。好啦,以上就是小編講的軟硬鏈接那些事兒,講的不好
還望各位看官多多包涵。同時,你們也可以通過下方評論來指出小編的不足之處,來吧來吧,讓暴風雨來的更猛烈一些吧!
原創文章,作者:Qianzhihe,如若轉載,請注明出處:http://www.www58058.com/82074