linux inode, 符号连接,物理连接

  1. inode是linux中的保存文件属性的结构,而文件的实际内容存放在block中。文件的block的地址信息存储在inode中。node

  2. 能够使用命令ll -di file_path查看文件/目录的inode。(操做系统查找文件时,也是根据文件的目录一级一级查找inode获得的。当前目录的子目录信息所在的block信息也在当前目录的inode中)linux

  3. 文件的inode中存放文件的block信息,block信息是文件的实际block地址仍是另外一个inode的block信息决定了该文件是对文件的一个物理连接仍是符号连接。 下图1是一较好的说明图:硬连接的删除除了删除inode,同时有可能删除掉实际的文件(若是文件的硬连接节点数==0),软连接的删除只是删除了该文件 名对应的inode,并不会删除实际的文件,若是软连接指向的硬连接的inode被删除,则软连接将没法访问实际的文件。编程

  4. 实际编程中,在进程里打开一个文件返回整型文件描述符并非一个inode,而是系统中一个文件表格的下标,该文件表格中的元素存储了文件的inode位置。在fork子进程时,仅仅是将高下标复制给了子进程,而inode和系统的文件表格都是同样的。也就是说子进程与父进程对文件是共享的。操作系统

    fd_father->文件表格->inode->block进程

                         ^file

    fd_son--------im

  5. 硬连接:多个文件名能够指向同一个inode。即不一样的文件名在硬连接同一个文件时查找到的inode的inode号是同样的。
    img

  6. 图1: di

    硬连接文件


    软连接

相关文章
相关标签/搜索