`
noble510520
  • 浏览: 56529 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

硬连接与软连接,inode与links

阅读更多

 

硬连接和软连接,第一感觉就像是window的快捷方式,实则不然

要说硬连接和软连接,那就必须了解inode和block以及分区了

EXT文件系统在创建分区的时候,就划分了两块区域,inode table和date block

INODE

inode – index node ,索引节点

每一个inode固定分配了128bytes的空间

一个文件和目录对应着一个inode

多个文件可以对应一个inode

当访问一个文件的时候,发生了什么

首先会找到这个文件名对应的inode number,然后拿着inode number 找到inode,获取inode中的信息,inode中记录了文件的数据在哪些个block中储存,然后会根据着inode中的block顺序,依次取出数据

INODE的内容

用sata命令取出文件名对应的inode信息

inode

  • size :该文件的大小
  • block : block的信息
  • links :有多少个连接数,有多少个文件名连接上这个inode
  • inode: inode number
  • Access:mode 权限
  • uid、gid
  • atime、mtime、ctime

删除

删除一个文件的时候发生了什么?

当这个文件的links>1的时候,先links-1,不删除block中的数据,不删除inode

如果links=1,那就删除inode,而且删除block,这样的话,那文件真的是删除了

删除目录的软连接,对实际目录没有影响,删除实际目录那就是真的删除了

硬连接

ln source destination

用上面的指令可以新建一个硬连接

建一个硬连接发生了什么?

先新建一个文件名,文件名的inode number 指向源文件的inode number,然后把links+1,这就完成啦

 

所以硬连接文件的所有信息(权限、owner、size、time….)都和源文件一模一样

访问硬连接的过程

找出硬连接的inode number,然后读取这个inode的信息和bolck位置,接着读取block中的数据

注意

  • 源文件和硬连接文件共用一个inode
  • 建立硬连接,inode中的links会加一
  • 所以删除硬连接对源文件不会有影响

软连接

ln -s source destination

用上面的指令可以建立一个软连接

建一个软连接发生了什么?

先建立一个文件,这个过程就会新建一个inode,软连接的inode和源文件的inode不一样

然后这个软连接文件的文件名会指向源文件

ln-s

可以看到,软连接的inode和源文件的inode不一样

软连接文件的大小为4bytes,这刚好就是源文件文件名(demo)的大小,一个字幕一个byte

访问一个软连接

访问一个软连接文件的时候,会根据文件名找到源文件,然后就跟直接访问源文件一样了

注意

  • 软连接的inode和源文件的inode不一样
  • 软连接不会增加links,所以删除源文件(links=2)的时候,软连接就访问不了了
  • 软连接文件的size=源文件的文件名的size
原文地址http://www.wewill.top/2016/06/03/%E7%A1%AC%E8%BF%9E%E6%8E%A5%E4%B8%8E%E8%BD%AF%E8%BF%9E%E6%8E%A5inode%E4%B8%8Elinks/
分享到:
评论

相关推荐

    Centos 7 硬连接和软连接.pdf

    与硬连接不同,软连接不是直接指向索引节点,而是创建一个指向目标文件的新文件,这个新文件本质上是一个包含目标文件路径的文本文件。软连接更类似于Windows操作系统中的快捷方式,当目标文件移动或删除时,软连接...

    硬连接和符号连接

    与硬连接不同,符号连接不直接指向索引节点,而是通过路径名解析来定位目标文件。 **特点**: - **独立的索引节点**:符号连接拥有自己的索引节点,即使目标文件被删除,符号连接仍然存在,但会变成一个无效的链接...

    junction ntfs link

    符号链接允许你在文件系统中创建“软”连接,这意味着即使目标文件在其他位置移动或重命名,链接依然有效。这在软件开发中尤其有用,因为可以轻松地在不同项目之间共享库或配置文件。 在提供的压缩包中,"junction....

    全面的linuxdm面试题

    41. links分为硬链接和软链接。 42. 查看所有进程的命令是ps -ef。 43. 管道文件的属性位p。 44. 管道|用于连接命令的标准输出和标准输入。 45. chmod +x filename.sh赋予脚本执行权限。 46. telnet命令用于...

    Linux面试题大全

    40. Links分类:硬链接和软链接。 41. 显示全部进程:ps -ef。 42. 管道文件:管道符"| "用于连接命令。 43. 执行权:chmod +x。 44. 远程登录:ssh。 45. ping命令测试:ping -c 10 abc.tuu.edu.cn。 46. DNS...

    linux删除无效链接文件脚本分享

    硬链接是指两个或更多个文件名共享同一 inode(inode 是文件系统中记录文件属性和位置的数据结构),而软链接则类似于Windows系统中的快捷方式,包含对目标文件路径的引用。当链接文件指向的目标文件被删除,链接就...

    linux面试题 已整理过

    硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。** - **知识点**: 硬链接只能在同一文件系统内创建,而符号链接可以跨越文件系统。 **40. 套接字文件的属性位是s。** - **知识点**: 套接字文件的特殊...

    Linux常见面试题及答案

    硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。 **知识点**:硬链接和符号链接是Linux中两种类型的链接: - **硬链接**:指向同一个i节点的多个文件名,适用于同一文件系统内的文件。 - **符号链接...

Global site tag (gtag.js) - Google Analytics