【linux】按部就班學運維-基礎篇-文件的軟硬連接


文章目錄


你們好,我是高勝寒,本文是Linux運維-按部就班學運維-基礎篇的第54篇文章。node


前言

今天咱們主要來聊聊文件的硬連接和軟鏈接運維

說到Linux連接,通常分爲兩種,一種是Hrad Link(硬連接), 另外一種是Symbolic Link (軟鏈接) 。ide

在這裏咱們使用的命令是ln測試

軟硬連接的介紹

在Windows中,快捷方式是指向原始文件的一個連接文件,可讓用戶從不一樣的位置來訪問原始的文件, 源文件一旦被刪除,連接文件也會失效。
可是Linux當中的快捷方式不太同樣,咱們先來看硬連接3d

1. 硬連接

硬鏈接指經過索引節點號來進行鏈接。咱們能夠理解爲文件名映射到文件的方法, inode節點上的連接數,就是連接到該文件的硬連接個數。blog

以下圖: 能夠看到硬連接數一開始爲1, 當增長一個硬連接後,硬連接數字變成了2.
在這裏插入圖片描述
在這裏插入圖片描述
從上圖咱們能夠看到,新增長的硬連接文件名字與源文件的名字並不相同。因此硬連接咱們又成爲是,多個文件名指向同一個索引節點。索引

看下圖,雖然文件名字不同,可是索引節點相同
在這裏插入圖片描述
那麼問題來了,若是我刪除掉其中一個,另外要給會被刪除嗎?圖片

在這裏插入圖片描述
能夠看到刪除後,源文件還存在,至關於一個備份,即便誤刪除了一個,另外一個也存在。it

注意:class

  • 只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的全部硬鏈接文件均被刪除。
  • 硬連接不能跨文件系統,由於 inode 編號只在同一文件系統下惟一.
  • 不能使用 ln 建立連接於目錄的硬連接
  • 建立連接於存在的文件實體的硬連接時,只會佔所屬目錄的子文件列中的一個表項,不佔用額外的空間
  • 對於目錄而言,至少存在兩個硬連接:目錄自己和目錄中文件名爲「.」的子文件。
2. 軟鏈接

軟連接文件有相似於Windows的快捷方式。它其實是一個特殊的文件。在符號鏈接中,文件其實是一個文本文件,其中包含的有另外一文件的位置信息

軟鏈接中咱們使用的命令是ln -s

特色:

  • 軟連接爲新的文件,須要新的 inode 節點與數據塊,空間開銷比硬連接大。
  • 可以跨文件系統建立軟連接。
  • 能使用 ln建立連接目標文件爲目錄的軟連接。
  • 當軟連接所連接的文件被刪除或重命名時,會致使軟連接失效。

案例實戰

1) 硬連接原文件刪除不會影響連接文件的正常使用

下圖的實驗說明了: 修改原文件內容,連接文件內容也會修改
在這裏插入圖片描述
從下圖能夠看到: 刪除原文件後,並不影響連接文件的使用
在這裏插入圖片描述

2) 硬連接不能跨分區進行建立

這裏先把sdb1掛載到了/mnt去,而後再建立硬連接到mnt上去,是沒法建立的,由於不能跨分區
在這裏插入圖片描述

有些資料上顯示,硬連接不能跨目錄,我作了下測試,發現是能夠的。

在這裏插入圖片描述

3) 建立軟鏈接,測試刪除原文件後,軟鏈接是否還存在

在這裏插入圖片描述

若是咱們刪除原文件會怎樣?

在這裏插入圖片描述
從上圖能夠看到,若是咱們刪除掉原文件,軟鏈接也就不存在了,顏色也變成了紅色

在這裏插入圖片描述

4) 軟連接能夠跨分區建立

錯誤案例:之因此錯誤是由於 再建立跨分區軟連接時,源文件必需要寫絕對路徑。
在這裏插入圖片描述

正確示範:

在這裏插入圖片描述
上圖能夠看到成功常見了跨分區的軟連接。

5) 列出當前路徑下全部的軟連接文件

find ./ -type f l -ls

總結

以上是對軟硬連接的介紹和使用,軟鏈接在平常工做中用的仍是比較頻繁的。

軟硬連接相對來講比較簡單,練上幾回就能上手。

咱們高勝寒,一個在教培行業不忘初心的人,歡迎點贊收藏。咱們下篇文章再見!

相關文章
相關標籤/搜索