美文网首页linux学习系列
linux笔记--软链接与硬链接

linux笔记--软链接与硬链接

作者: 我是一只菜鸟呀 | 来源:发表于2017-06-21 20:45 被阅读13次

    inode与block

    block由sector(扇区)组成,是最小的文件存取单位,用来存放数据。

    inode(索引节点):每个文件至少有一个inode,存放除文件名外的文件元数据,例如:文件拥有者的id,组id,三个时间戳,block位置,文件大小,链接数(有多少个文件名指向这个inode),文件读写权限。

    实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

    硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

    查看某个文件的inode信息

    stat example.txt

    查看每个分区的inode使用情况

    注意:系统中inode数量是有限的,可能存在inode满了,但磁盘未满的情况,此时不能创建文件

    df -i

    查看每个inode大小

    sudo dumpe2fs -h /dev/hda | grep "Inode size"

    查看某个文件的inode号

    ls -i example.txt

    软连接与硬连接

    硬连接:

            多个文件名指向同一个inode,每增加一个硬连接,会使inode的连接数+1;每删除一个指向同一个inode的文件,inode的连接数-1,连接数为0时,会删除inode。

    ln 源文件 目标文件  

    #不能连接目录 1.迭代子目录硬连接太复杂。2.每个目录的.和..已经确定了自己的位置,而硬连接的两个目录的父目录可能不同,如果对".."硬连接,是不对的。

    注意:任何一个目录的"硬链接"总数,总是等于2加上它的直接子目录总数(含隐藏目录,只包含儿子目录,不包含孙子及更小的目录)。因为创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。

    软连接:

            软连接文件A和源文件B是不同的inode,但是A的内容是B的路径。当访问A时,系统会自动导向B(所以无论访问哪个文件,最终访问的都是B)。因此,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。

    这是软链接与硬链接最大的不同:

            文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

    ln -s 源文文件或目录 目标文件或目录

    相关文章

      网友评论

        本文标题:linux笔记--软链接与硬链接

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