`
朱秋旭
  • 浏览: 229911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过Inode原理分析Linux中ln命令

阅读更多

理解Inode要从文件说起,文件存储在硬盘上,硬盘最小的单位是扇区,一般一扇区512字节,但是如果硬盘以扇区为单位读数据,那样效率太低,一般硬盘都以block(多个扇区)为单位读取数据,最常见的大小是4K。既然文件存储在block中,那么就需要有一块存储空间放置一些诸如文件的创建者,创建时间,权限的元数据,存储元数据的地方就是Inode。

注:Inode信息中是没有文件的文件名的。为什么?

我们来看一下Inode的结构图就明白原因了



 图中Directory不是目录的意思,更准确的理解应该是对应关系和字典。

由图中的查找方式我们可以清晰的看到,文件名只在查找Inode number中使用到,所以它不会存储在Inode中,所有Inode与block间的沟通都是通过Inode number唯一标识的。

 

了解的文件存取的原理之后我们来看一下ln命令

众所周知ln命令分为硬链接和软链接,根绝上面的结构图,硬链接就是在Directory中加入一条filename和Inode的对应关系,所以如果你删除了原来的文件,是不对硬链接文件有任何影响的,因为删除文件就是将link count 减少,当发现指向Inode为filename数量0的时候,系统会回收相应的Inode和Block空间。但是软链接就不同了,在Linux下所有的都是文件,所以软链接也有自己的Inode和block ,但是创建软链接不会在增加原文件Inode-Index,当删除原文件的时候,相应的Index不再能找到,所以导致软链接不能用。但是软链接有自身的优势,可以跨分区,这样就可以解决当前Inode数据区不足够写入,可以使用软链接指向空间充足的空间。

 

这样的设计带来的好处:

1. 如果一个文件名中包含特殊字符不能删除,可以通过删除Inode来达到删除文件的目的。

find . -inum inodeno -exec rm -i {} \;

2. 修改文件名,移动文件只是改变文件名,不用修改Inode信息和block信息。

3. 可以再不关闭软件,不重启的情况下完成升级,因为系统在运行的过程中通过Inode number进行识别,而不是文件名,所以可以在InodeIndex中以同样的文件名指向不同的Inode,在新的block中写入新文件,下次打开软件直接指向新的Inode和block

 

  • 大小: 369.3 KB
1
0
分享到:
评论

相关推荐

    iNodeClient_Linux64_7.3 (E0524).tar.gz

    标题中的“iNodeClient_Linux64_7.3 (E0524).tar.gz”表明这是一个针对Linux 64位系统的iNode客户端软件,版本号为7.3,E0524可能是发布日期或者特定版本的标识。该文件采用.tar.gz格式进行压缩,这是一种常见的...

    iNodeClient_Linux.zip

    inode是Linux和类Unix系统中用来存储文件元数据的重要结构,包含了文件的所有者、权限、大小、创建和修改时间等信息,而iNodeClient则是将这些功能以用户友好的界面呈现出来,方便用户进行高效的操作。 iNodeClient...

    iNodeClient_Linux

    标题 "iNodeClient_Linux" 指向的是一个专为Ubuntu操作系统设计的校园网客户端软件。...用户可以通过解压并安装 "iNodeClient_Linux.tar" 文件来使用这个客户端,从而便捷地接入并使用校园网络服务。

    inode client for linux

    在Linux操作系统中,inode(Inode Table Entry)是文件系统中的一个重要组成部分,它负责存储文件元数据,如文件的所有者、权限、创建时间、修改时间等。"inode client for linux"是一个专为Linux设计的客户端程序,...

    iNodeClient for Linux 64 bits

    《深入理解Linux 64位环境下iNodeClient的运用与原理》 在现代计算机系统中,Linux操作系统以其开源、稳定和高效的特点深受广大用户和开发者喜爱。尤其在64位计算环境中,Linux更是展现了强大的性能。本文将针对...

    iNodeClient_Linux.tar.gz

    本文将详细探讨iNodeClient的特性、工作原理以及如何在Linux系统中安装和使用。 首先,我们需要了解什么是iNode。iNode并非一个具体的产品名称,而是指Linux文件系统中用于管理文件和目录的数据结构。每个文件或...

    iNodeClient_Linux64.tar.gz

    H3C iNode 智能客户端,Linux 版本的 iNode 智能客户端(以下简称 Linux iNode)是一款多功能接入软件,可以和以太网交 换机、路由器等设备共同组网,再配合 iMC EIA/EAD,实现对接入用户的身份认证和安全检查。Linux...

    iNodeClient_Linux64_7.3 (E0517).tar.gz

    H3C的iNode客户端,Linux64位版本,portal 802.1X sslvpn 3种认证方式都支持,其他用户上传的几乎都缺少SSLVPN的支持,甚至只支持一项 依赖:gcc-libs ncurses5 如果你是Arch党,还可以使用PKGBUILD构建软件包:...

    iNode HC for linux

    《深入理解Linux中的iNode HC》 在Linux操作系统中,文件系统是管理和组织磁盘存储空间的核心机制。其中,iNode(索引节点)是文件系统的重要组成部分,它记录了文件的各种元数据,如文件的所有者、权限、大小、...

    iNodeClient for linux

    总的来说,iNodeClient为Linux用户在校园网环境中提供了一种可靠的认证工具,它的存在弥补了Linux平台在上网认证方面的不足,使得用户在享受Linux系统自由度的同时,也能顺畅地接入网络。无论是对于个人学习还是教学...

    详解Linux ln 命令

    Linux 中的文件分为 Hard Link 和 Symbolic Link 两种。Hard Link 文件又被称为硬链接文件、实体...要读取该文件的内容,需要通过文件所在的目录中记录的文件名找到文件的 inode 号,然后通过 inode 找到存储文件内容的

    H3C iNodeClient_for_linux

    在下载的压缩包中,我们有两个主要文件:`iNodeClient_Linux.tar.gz`和`iNode_Linux.pdf`。`iNodeClient_Linux.tar.gz`是一个压缩文件,采用tar和gzip的组合格式,我们需要先解压才能访问其中的内容。在Linux终端中...

    iNode for Linux 5.0

    本文将深入探讨"iNode for Linux 5.0",包括其功能特性、安装流程以及在Linux系统中的应用。 一、iNode简介 iNode是一款专为校园网络设计的身份验证软件,它允许用户通过客户端程序进行网络接入认证。在"iNode for...

    Linux ln 命令的使用

    Linux ln 命令是操作系统中的一个重要工具,...通过理解ln命令的不同选项和使用方式,可以更有效地管理和组织Linux系统中的文件和目录,提升工作效率。熟练掌握ln命令的使用,是每个Linux用户和管理员必备的技能之一。

Global site tag (gtag.js) - Google Analytics