Linux的硬鏈接與軟鏈接

Linux 的硬鏈接與軟鏈接

文件由文件名與數據組成,這在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號即索引節點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 號尋找正確的文件數據塊。

Linux 系統中查看 inode 號可使用命令 ls –i

 

 XBLB(OU00G6CNV6Z}}VWI}Q.png

為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。若一個 inode 號對應多個文件名,則稱這些文件為硬鏈接。換言之,硬鏈接就是同一個文件使用了多個別名。硬鏈接可由命令ln 創建。

 

由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:

文件有相同的 inode data block;

只能對已存在的文件進行創建;

不能交叉文件系統進行硬鏈接的創建;

不能對目錄進行創建,只可對文件創建;

刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。

系統 inode 耗盡但仍有磁盤空間的情景

 

 

軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊。因此軟鏈接的創建與使用沒有類似硬鏈接的諸多限制:

軟鏈接有自己的文件屬性及權限等;

可對不存在的文件或目錄創建軟鏈接;

軟鏈接可交叉文件系統;

軟鏈接可對文件或目錄創建;

創建軟鏈接時,鏈接計數不會增加;

刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接。

原創文章,作者:easy.bai,如若轉載,請注明出處:http://www.www58058.com/53229

(0)
easy.baieasy.bai
上一篇 2016-10-25
下一篇 2016-10-25

相關推薦

  • 22期第七周課堂練習

    1、創建一個10G分區,并格式為ext4文件系統;        (1) 要求其block大小為2048, 預留空間百分比為2,   卷標為MYDATA, 默認掛載屬性包含acl;        (2)   掛載至/data/mydata目錄,要求掛載時禁止程…

    Linux干貨 2016-10-09
  • rpm實現LAMP

    rpm實現LAMP部署 LAMP概述 LAMP指的Linux(操作系統)、ApacheHTTP 服務器,MySQL(有時也指MariaDB,數據庫軟件) 和PHP(有時也是指Perl或Python) 的第一個字母,一般用來建立web應用平臺。常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同…

    Linux干貨 2016-11-02
  • 馬哥教育網絡班21期+第15周課程練習

    1、總結sed和awk的詳細用法; sed的詳細用法 awk的詳細用法 2、刪除/boot/grub/grub.conf文件中所有行的行首的空白字符; # sed 's/^[[:space:]]*//' /boot/grub/grub.conf 3、刪除/etc/fstab文件中所有以#開頭,后跟至少一個空白…

    Linux干貨 2016-11-14
  • 進程管理

    linux維護工作中,常常需要對系統上運行的程序進行管理,那么進程管理就顯得相當重要。 進程初識 什么是進程?   進程是并發執行的程序在執行過程中分配和管理資源的基本單位,是一個動態概念。它代表CPU所能處理的單個任務。 什么是線程?   線程是程序流執行的最小單元,可以理解為進程中執行的一段程序片段。 進程與線程聯…

    Linux干貨 2016-09-07
  • 如何實現本地yum源的共享

    上一篇關于Linux yum客戶端的配置的博客,介紹了如何通過修改本機yum配置文件來訪問網絡或者本地的yun sever, 本文就來介紹一下,如何把我們的本地RPM包像yum sever一樣通過http或ftp網絡方式共享出去。 一、準備好發行版光盤,包,元數據    CentOS-6.8-x86_64-bin-DVD1.iso二、準備…

    2017-06-17
  • 管道:管道符;cat和more命令 重定向:文件標識符:I/O重定向符號及其用法;exec命令;代碼塊重定向 命令行處理:命令行處理流程;eval命令 管道: 管道是Linux編程中最常用的技術之一,Shell編程中豎杠符號:“|” command1 | command2 | command3 | … |commandn command1到commandn表…

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