美文网首页linux程序员
linux链接文件、硬链接与软链接

linux链接文件、硬链接与软链接

作者: 3e1094b2ef7b | 来源:发表于2017-02-15 23:37 被阅读88次

    一、linux文件管理特性

    linux的文件都有文件名和数据。

    数据被分成2部分:用户数据(user data)与元数据(metadata)。

    用户数据:即文件数据块(data block),数据块是记录文件真实内容的地方。

    元数据:文件的附加属性,如文件大小、创建时间、所有者等信息。

    在linux中,元数据中的inode号(即索引节点号。inode号是文件元数据的一部分,但其并不包含文件名)才是文件的唯一标识,而文件名并不是文件的唯一标识。
    文件名仅是为了方便人的记忆和使用,而系统或程序是通过inode号找正确的文件数据块的。


    二、为什么会有链接文件

    为解决文件的共享使用,Linux 系统引入了链接,链接为Linux 系统解决了文件的共享使用,还带来了隐藏文件路径增加权限安全节省存储等好处。

    创建链接文件可以给文件和目录创建替代名或别名。


    三、链接文件的分类

    • 硬链接 (hard link)

      ln source_file target_file
      ln -P source_file target_file
      // 建立硬链接
      
    • 软链接(soft link;又称符号链接,即symbolic link)

      ln -s source_file target_file
      // -s:建立软链接
      

    四、硬链接

    若一个 inode 号对应多个文件名,则称这些文件为硬链接。
    换言之 ,硬链接就是同一个文件使用了多个别名。

    当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数会少1个。

    硬链接具有以下几点特性:

    • 文件有相同的inode及data block,仅文件名不同
    • 只能对已存在的文件进行创建
    • 不能交叉文件系统进行硬链接的创建,只能在同一个文件系统来链接文件
    • 不能对目录进行创建,只能对文件创建
    • 删除一个硬链接文件并不影响其他有相同 inode 号的文件

    五、软链接

    若文件用户数据块中存放的内容是另一文件的路径名的指向(像windows中的快捷方式一样),则该文件就是软链接。

    软链接就是一个普通文件,它有自己的文件属性及权限等。

    软链接具有以下几点特性:

    • 软链接有着自己的 inode 号以及用户数据块(data block)
    • 可对文件或目录进行创建
    • 也可对不存在的文件或目录进行创建
    • 可交叉文件系统进行创建,可在不同的文件系统来链接文件
    • 创建软链接时,链接计数不会增加
    • 建立了软链接后,软链接文件的大小是指向的目标文件的文件名的大小。
    建立了软连接后,软连接文件的大小是指向的目标文件的文件名的大小
    • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link);若被指向路径文件被重新创建,死链接可恢复为正常的软链接。
    死链接与正常的软链接

    相关文章

      网友评论

        本文标题:linux链接文件、硬链接与软链接

        本文链接:https://www.haomeiwen.com/subject/vewtwttx.html