關于軟硬鏈接那些事兒

       小編這周接觸到了鏈接,那么重點來了,啥是鏈接呢關于軟硬鏈接那些事兒關于軟硬鏈接那些事兒小編覺得鏈接簡單來說就是一種共享的方式,比如我們去逛超市,超市的入口就是‘鏈接’。在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

(0)
QianzhiheQianzhihe
上一篇 2017-07-22 11:10
下一篇 2017-07-22 11:59

相關推薦

  • 編譯安裝httpd

    編譯安裝httpd   1 去官網下載源碼包                                      為避免非法軟件,一定要去官網下載http…

    2017-04-24
  • Linux進程篇16.4top命令:進程管理工具

    top命令:進程管理工具

    2017-12-18
  • GRUB

    什么是GRUB GRUB(boot loader):grub:GRand Unified Bootloader     有兩個版本:grub 0.x:grub legacy經典版;grub 2.x grub legacy:主要運行分三個階段 stage1(第一階段):安裝在mbr中 stage1.5(第1.5階段):存…

    Linux干貨 2016-09-21
  • 文本處理sed

    文本處理sed Sed介紹:          處理文本的工具sed ,Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,…

    Linux干貨 2017-05-04
  • Linux簡述

    計算機誕生                                                  …

    2017-03-18
  • 網絡接口配置-bonding

    網絡接口配置-bonding ?Bonding 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 Bonding的工作模式 ?Mode 0 (balance-rr) 輪轉(Round-robin)策略:從頭…

    Linux干貨 2016-09-05
欧美性久久久久