Linux 文件索引(inode)

1、简介

    ceph 文件系统中 接触太多 文件索引 的相关 操作,因此 还是 整理下 关于 Linux 文件索引 inode 相关知识(注意:本文 所描述的 都是 在同一个文件系统中,跨文件系统 情况 会有所不同)
    

1.1 inode

    inode 也被称为 索引(表项),主要包含 如下一些信息

  • 文件类型
  • 权限
  • UID
  • GID
  • 文件大小
  • 文件时间(三个时间属性)
  • 删除时间
  • 链接数(软链接、硬链接)
  • 文件在磁盘的数据块位置信息
  • 其它元数据信息
        

1.2 显示文件信息

1.2.1 文件属性

## 获取文件 属性
# stat hosts
  File: ‘hosts‘
  Size: 186         Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 786776      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-04-23 10:44:33.076000301 +0800
Modify: 2017-10-17 13:45:05.862183948 +0800
Change: 2017-10-17 13:45:05.862183948 +0800
 Birth: -

    

1.2.2 目录属性

## 获取目录属性
# stat /etc/
  File: ‘/etc/‘
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 803h/2051d  Inode: 786433      Links: 89
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-04-23 10:45:38.343525394 +0800
Modify: 2019-04-16 09:51:15.453364823 +0800
Change: 2019-04-16 09:51:15.453364823 +0800
 Birth: -

    

2、inode 查看

2.1 文件 inode

2.1.1 普通文件

## 文件查看 inode
# ls -il /etc/hosts
786776 -rw-r--r-- 1 root root 186 Oct 17  2017 /etc/hosts

    

2.1.2 目录

## 目录查看 inode
# ls -li -d /etc/
786433 drwxr-xr-x 89 root root 4096 Apr 16 09:51 /etc/

    

2.2 磁盘 inode(df)

## inode 不足时,哪怕 磁盘有剩余空间,也无法 写入文件
# df --inode
Filesystem      Inodes IUsed   IFree IUse% Mounted on
udev             55269   484   54785    1% /dev
tmpfs            60278   649   59629    2% /run
/dev/sda3      3096576 69768 3026808    3% /
tmpfs            60278     1   60277    1% /dev/shm
tmpfs            60278     3   60275    1% /run/lock
tmpfs            60278    16   60262    1% /sys/fs/cgroup
/dev/sda1        61056   302   60754    1% /boot
tmpfs            60278     4   60274    1% /run/user/1000

    

2.3 superblock inode(tune2fs)

# tune2fs -l /dev/sda1 | grep inode
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Free inodes:              60754
First inode:              11
Journal inode:            8
Journal backup:           inode blocks

    

3、inode 操作、状态

3.1 文件查找 基于 inode

# find /etc -inum 786776
/etc/hosts

    

3.2 文件基本操作(增、删、改) inode状态

3.2.1 创建文件

# touch inode_1
# ls -il inode_1
1310729 -rw-r--r-- 1 root root 0 Apr 23 14:11 inode_1

# touch inode_2
# ls -il inode_2
1310730 -rw-r--r-- 1 root root 0 Apr 23 14:11 inode_2

3.2.2 拷贝文件

## 拷贝后的 目标文件,会被赋予新的 inode
# cp /etc/hosts /opt/inode_cp
# ls -il /opt/inode_cp
1310726 -rw-r--r-- 1 root root 186 Apr 23 11:07 /opt/inode_cp

    

3.2.3 移动文件

## mv 后的目标文件,保留原有的 inode(文件时间属性 会改变)
# mv /opt/inode_cp /opt/inode_mv
# ls -il /opt/inode_mv
1310726 -rw-r--r-- 1 root root 186 Apr 23 11:07 /opt/inode_mv

    

3.2.4 删除文件

## 被删除 文件的 inode 可以被别的文件使用
# ls -il inode_2
1310730 -rw-r--r-- 1 root root 0 Apr 23 14:13 inode_2

# rm inode_2
# touch inode_3
# ls -il inode_3
1310730 -rw-r--r-- 1 root root 0 Apr 23 14:13 inode_3

    

3.2.5 编辑文件

## 编辑 文件文本内容 不会 改变 inode
# vim inode_3
# ls -il inode_3
1310732 -rw-r--r-- 1 root root 3 Apr 23 14:14 inode_3

    

3.3 链接文件 inode状态

    链接 分为两种,硬链接 和 软链接(本文 主要 描述 inode,所以 链接相关的 不会进行描述)
    

3.3.1 软链接 inode状态

## 软链接 inode 不同
# ln -s fork fork_soft_link
# ls -il
... ...
1310724 -rwxr-xr-x 2 root root 8920 Mar 20 16:32 fork
1310728 lrwxrwxrwx 1 root root    4 Apr 23 13:43 fork_soft_link -> fork

    

3.3.2 硬链接 inode状态

## 硬链接 inode 相同
# ln fork fork_hard_link
# ls -il
... ...
1310724 -rwxr-xr-x 2 root root 8920 Mar 20 16:32 fork
1310724 -rwxr-xr-x 2 root root 8920 Mar 20 16:32 fork_hard_link

原文地址:https://blog.51cto.com/11495268/2384898

时间: 2024-11-13 02:55:28

Linux 文件索引(inode)的相关文章

Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)

从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系统的存储结构.不同存储介质的区别(RAM.ROM.Flash).存储节点inode. 本文参考:http://blog.chinaunix.net/uid-8698570-id-1763151.html http://www.iteye.com/topic/816268 http://soft.chinabyte.com/os/142/12315142.shtml http://www.ibm.com/developerworks/

Linux文件访问流程及磁盘inode和block总结

Linux文件访问流程 inode是文件的唯一标识,文件名和inode的对应关系存放在上一级目录的block中:inode里有指向文件block的指针和文件的属性,从而通过block获得文件数据. 磁盘的容量由inode和block共同决定 磁盘空间是否满了,是由两项参数决定的: 第一个是inode是否满了,第二是block是否满了,任何一个满了都不能存数据. 有关inode的总结 磁盘格式化创建文件系统时会生成一定数量的inode和block: inode称为索引节点,作用是存放文件的属性信息

linux 文件描述符表 打开文件表 inode vnode

在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数.Linux中规定每个进程能最多能同时使用NR_OPEN个文件描述符,这个值在fs.h中定义,为1024*1024(2.0版中仅定义为256). 每个文件都有一个32位的数字来表示下一个读写的字节位置,这个数字叫做文件位置.每次打开一个文件,除非明确要求,否则文件位置都被置为0,即文件的开始处,此后的读或写操作都将从文件的开始处执行,但你可以通过执行系统调用LSE

浅析Linux文件(一)inode与block、硬链接与软链接、恢复误删文件

一.inode与block 1.inode和block概述 文件数据包括元信息与实际数据,一个文件必须占用一个inode,但至少占用一个block. 扇区:文件存储在硬盘上,硬盘的最小存储单位是扇区,每个扇区存储空间是512字节.block(块):连续的八个扇区组成一个block,block是文件存取的最小单位,用来存储文件数据.inode(索引节点):也叫i节点,用于存储文件元信息. 2.inode的理解 (1)inode包含文件元信息: 文件的字节数 文件拥有者的User ID(UID) 文

linux中文件索引节点知识

概念 索引节点     inode表中包含了文件系统所有文件列表     一个节点是在一个表项里,包含文件数据(元数据).         1.文件类型,权限,UID,GID         2.链接数(指向这个文件名路径名称个数)         3.文件的大小和时间戳         4.指向磁盘上文件的指针         5.有关文件的其他数据         6.inode 索引节点编号 inode表结构      直接块指针:有12个块直接指向对应的数据单元,每个数据单元可以容纳4K

Linux下利用inode来删除一些乱码文件

我的机器上有个目录,我想删掉它,但是因为是中文的(在这里我们把它当做是一个乱码的文件),我们不能直接输入用户名来删除它,该怎么办? [email protected]:/website/jastme# ll total 172960 drwx------  3 ftpuser ftpgroup     4096  1月 28 17:02 ./ drwxr-xr-x 13 root    root         4096 12月 18 10:35 ../ -rw-r--r--  1 root  

linu索引inode详解

1.inode简介 文件系统是数据在硬盘上的一种排列组织方式,linux每个分区都可以格式化为不同的文件系统,所以可以说每个分区都是一个文件系统,都有自己的目录层次结构.而在目录之下,linux已经将所有的资源处理成为文件,不论是目录还是命令,之后linux会将这些分属不同分区的.单独的文件系统按一定的方式形成一个系统的总的目录层次结构,实现对不同分区的数据进行访问.但是通过目录层次访问磁盘上的文件,只是表面现象.要知道数据在磁盘上以块(block)存储(一个block由8个扇区组成,每个扇区0

理解Linux文件系统之inode

很少转发别人的文章,但是这篇写的太好了. 理解inode 作者: 阮一峰 inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础. 我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口. 下面就是我的inode学习笔记,尽量保持简单. =================================== 理解inode 作者:阮一峰 一.inode是什么? 理解inode,要从文件储

linux中的inode节点

一.背景 传统的磁盘与文件系统的应用中,一个分区就只能够被格式化成一个文件系统,所以我们可以说一个文件系统就是一个分区.但是由于新技术的利用,例如我们常听到的LVM与软磁盘阵列(software raid),这些技术可以将一个分区格式化为多个文件系统(例如LVM),也能够将多个分区合成一个文件系统(LVM,RAID),通常我们可以称呼一个可被挂载的数据为一个文件系统而不是一个分区. 那么文件系统是怎么运行的呢?这与操作系统的数据有关.较新的操作系统的文件数据除了文件实际内容外,通常含有非常多的属