inode

Linux下的softlink和hardlink

天涯浪子 提交于 2019-12-05 05:03:10
Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link) 创建命令: ln -s softlink destfile/directory #建立软连接 ln hardlink destfile #建立硬连接 inode 在Linux系统中,内核为每一个新创建的文件分配一个Inode,每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在inode里,在访问文件时,inode被复制到内存在,从而实现文件的快速访问。系统是通过inode来定位每一个文件。 硬链接(hard link) 硬链接实际上是一个指针,指向源文件的inode,系统并不为它重新分配inode。硬连接不会建产新的inode,硬连接不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用计数的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。 软链接(soft link) 软链接最直观的解释:相当于Windows系统的快捷方式,是一个独立文件(拥有独立的inode,与源文件inode无关)

理解 Linux 的硬链接与软链接

有些话、适合烂在心里 提交于 2019-12-05 05:02:57
理解 Linux 的硬链接与软链接 从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。通过剖析硬链接与软链接的联系与区别,我们可更好的了解 Linux 中 VFS 这一通用文件模型。并让 Linux 普通用户和系统管理员正确使用硬链接与软链接,帮助文件系统开发者获取 inode 的相关知识。 1 评论: 王 华东 , 自由职业者 2012 年 12 月 20 日 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用。 开始您的试用 Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程 创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的管理,Linux 还引入了目录(有时亦被称为文件夹)这一概念。目录使文件可被分类管理,且目录的引入使 Linux 的文件系统形成一个层级结构的目录树。 清单

Linux硬链接和软连接

让人想犯罪 __ 提交于 2019-12-05 04:24:53
硬链接(hard link):     A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。 软链接(soft link):     A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。 硬链接:   a.不能对目录创建硬链接,原因最重要的是:文件系统不能存在链接环,存在环的后果会导致例如文件遍历等操作的混乱(du,pwd等命令的运作原理就是基于文件硬链接)   b:不能对不同的文件系统创建硬链接

LINUX磁盘与档案系统

自作多情 提交于 2019-12-05 03:10:10
我們常聽到的LVM與軟體磁碟陣列(software raid), 這些技術可以將一個分割槽格式化為多個檔案系統(例如LVM),也能夠將多個分割槽合成一個檔案系統(LVM, RAID)! 所以說,目前我們在格式化時已經不再說成針對 partition 來格式化了, 通常我們可以稱呼 一個可被掛載的資料為一個檔案系統而不是一個分割槽喔! superblock:記錄此 filesystem 的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等; inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的資料所在的 block 號碼; block:實際記錄檔案的內容,若檔案太大時,會佔用多個 block 。 data block: data block 是用來放置檔案內容資料地方, 在 Ext2 檔案系統中所支援的 block 大小有 1K, 2K 及 4K 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode 的記錄啦。 原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化); 每個 block 內最多只能夠放置一個檔案的資料; 承上,如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量; 承上,若檔案小於 block ,則該 block

[转]理解Linux文件系统之inode

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 23:44:35
作者: 阮一峰 inode 是一个重要概念,是理解Unix/ Linux 文件系统和硬盘储存的基础。 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。 下面就是我的inode学习笔记,尽量保持简单。 =================================== 理解inode 作者:阮一峰 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统 读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。 二、inode的内容 inode包含文件的元信息,具体来说有以下内容:   * 文件的字节数   *

Linux学习四 Linux 磁盘与文件系统管理

孤人 提交于 2019-12-04 23:03:22
1 认识 Linux 文件系统   Linux 最传统的磁盘文件系统 (filesystem) 使用的是 EXT2,而文件系统是建立在磁盘上的,因此我们得了解磁盘的物理组成。 1.1 磁盘组成与分区   磁盘物理组成:     圆形的磁盘盘(主要记录数据的部分);     机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);     主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读取数据。   磁盘盘上物理组成:     扇区(Sector)为最小的物理储存单位,且依据磁盘设计的不同,目前主要有 512bytes 与 4K 两种格式;     将扇区组成一个圆,那就是磁柱(Cylinder);     早期的分区主要以磁柱为最小分区单位,现在的分区通常使用扇区为最小分区单位(每个扇区都有其号码,就好像座位一样);     磁盘分区表主要有两种格式,一种是限制较多的 MBR 分区表,一种是较新且限制较少的 GPT 分区表;     MBR 分区表中,第一个扇区最重要,里面有:(1)主要开机区(Master boot record,MBR)及分区表(partition table),其中 MBR 占有 446bytes,而 partition table 则占有 64bytes;     GPT 分区表除了分区数量扩充较多之外,支持的磁盘容量也可以超过 2TB。  

linux常用命令_1_权限管理命令

送分小仙女□ 提交于 2019-12-04 22:37:39
按照一个业务流来写一系列操作 eg: 创建目录 -->创建空文件--> 空文件中vi写东西-->文件夹整体拷贝后改名-->移动到别的文件夹内-->删除原有文件 接linux常用命令_0文章继续介绍文件处理命令 2.a) 文件处理命令之--> 文件查看/浏览 命令 详解: cat命令: 显示内容不长的文件 英文原意 concatenate and display files 命令所在路径 /bin/cat 执行权限 所有用户 语法 cat 文件名 范例 [root@localhost test1]# cat /etc/issue more命令: 分页显示内容长的文件 命令所在路径 /bin/more 执行权限 所有用户 语法 more 文件名 空格/f 显示下一页 Enter 显示下一行 q或Q 退出 范例 [root@localhost test1]# more /etc/services head命令: 默认查看文件的前10行数据 命令所在路径 /bin/head 执行权限 所有用户 语法 head 文件名 head -num 文件名(-num显示文件前num行) 范例 [root@localhost test1]# head -20 /etc/services tail命令: 查看文件的后几行数据 命令所在路径 /bin/head 执行权限 所有用户 语法 head 文件名

Linux系统文件属性

二次信任 提交于 2019-12-04 20:26:07
1、Linux系统文件属性 1.1 inode包含文件的元信息,具体来说有以下内容:   * Size文件的字节数   * Uid文件拥有者User的ID   * Gid文件的Group ID   * Access文件的读、写、执行权限   * 文件的时间戳,共有三个:Change指inode上一次变动的时间,Modify指文件内容上一次变动的时间,Access指文件上一次打开时间   * Links链接数,即有多少个文件名指向这个inode   * Inlde文件数据block的位置   * Blocks 块数   * IO Blocks 块大小   * Device 设备号码 可以用stat命令,查看某个文件的inode信息。 1.2 文件类型   -:普通文件(文本文件,二进制文件,压缩文件,图片文件等)   d:目录文件(深蓝色)   b:设备文件(块设备)存储设备硬盘,/dev/sda,/dev/sda1   c:设备文件(字符设备)打印机,终端 /dev/tty1,/dev/zero   s:套接字文件,进程间通信   p:管道文件   l:链接文件(浅蓝色) 注意:文件扩展名不代表任何含义,只是为了便于识别。 可以用 file 命令:查看文件类型 来源: https://www.cnblogs.com/liuzgg/p/11881596.html

第二周作业

泄露秘密 提交于 2019-12-04 18:01:57
1、描述Linux发行版的系统目录名称命名规则以及用途。 Linux系统基础目录的命名法则:        1、遵循FHS(Filesystem Hierarchy Standard)标准        2、严格区分大小写        3、目录也是文件,在同一路径下,两个文件不能同名        4、支持使用除 / 以外的任意字符        5、最长字符不能超过255个字符 Linux发行版基本目录架构及用途描: 2、描述文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息? 文件的数据分为两类:一类为数据,即文件的实际内容;另一类为元数据,用来描述文件属性的数据。 元数据信息包含: File:文件名 Size:文件大小(单位:B) Blocks:文件所占块个数 IO Block:每个数据块的大小(单位:B) regular file:普通文件(此处显示文件的类型) Inode:文件的Inode号,文件的索引节点号 Links:硬链接次数 Access:权限 Uid:(属主id/属主名) Gid:(属组id/属组名) Context:文件所在的环境 Access:最近访问时间access time (atime) Modify:数据改动时间modification time (mtime) Change:元数据改动时间status time

彻底理解“软链接”和“硬链接”

天大地大妈咪最大 提交于 2019-12-04 16:35:39
软链接(soft link)到底“软”在哪里,硬链接(hard link)到底“硬”在何处,本文一一道来。 背景知识:文件系统 linux中,在文件系统的视角来看,文件其实是inode,一个文件对应于一个inode,在inode 中保存有文件的元信息(metadata),比如文件大小,读写权限,设备号,操作接口(read, write etc.) 等,以及文件的实际数据,图示一下, 图中的”Infos”就是文件的元信息,而”blocks”保存的就是文件的实际数据。 目录,也是一个文件,只不过它的实际数据就是一些 (filename, inode number) 而已, 这些“文件名-inode号”叫做 dirent , 1234 struct dirent { uint inum; char name[DIRSIZE];} 图解软、硬连接 那软、硬连接是如何存在于文件系统中的呢,他们到底有何区别呢?下面是完整的图示, 注意,这些图示来源于 这里 。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 0. inode在磁盘上大致是这个样子的: .---------------> ! data ! ! data ! etc / +------+ !-