Linux中的文件
一般情况下,每个存储设备或存储设备的分区(存储设备是硬盘、软盘、U盘 ..)被格式化为文件系统后,都会有两部份,一部份是iNode,另一部份是Block。Block是用来存储数据用的,而iNode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
在 Linux 中的文件系统中,文件 = N(N>=1)个 inode + M(M>=1)个数据块。
数据块,存放文件的内容数据,数据块的数目根据文件内容的大小而定。
inode 称为信息节点、索引节点、i 节点。其作用有二:
1、存储跟文件相关的属性信息,如修改时间、所有者、文件类型和文件长度,注意这些信息里并没有文件名;
2、存储指向文件内容数据块的指针信息。
在一个文件系统中,一个 inode 代表一个文件,并使用一个整数值来标志该 inode,称为 inode-number,该值对于一个文件系统而言是唯一的,即通过该值可以找到其对应的 inode。一般情况下,一个文件只有一个 inode 信息用来描述它。
综上所述,假设 Linux 系统中有一个文件 a,则该文件在文件系统层面上,可以抽象表示为下图(超级块描述文件系统本身的信息):

下面通过一个程序来获取某个文件的inode信息:
/*
* 文件名:filstat.c
* 描述: 打印指定文件名的inode信息
*/ #include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h> struct stat file_stat; void print_file_stat(struct stat *fs)
{
printf(">>>>>>>>>>>>>>>>>>>>>>>\n");
printf("inode: \t\t\t\t%ld\n",fs->st_ino);
printf("protection : \t\t\t%o\n",fs->st_mode);
printf("number of hard links: \t\t%lu\n",fs->st_nlink);
printf("user ID of owner : \t\t%d\n",fs->st_uid);
printf("group ID of owner : \t\t%d\n",fs->st_gid);
printf("file size in bytes: \t\t%ld\n",fs->st_size);
printf("time of last access : \t\t%s",ctime(&fs->st_atime));
printf("time of last modification: \t%s",ctime(&fs->st_mtime));
printf("time of last change: \t\t%s",ctime(&fs->st_ctime)); } int main(int argc, char *argv[])
{
if( != argc)
{
fprintf(stderr,"Usage: %s filename...\n",argv[]);
exit(-);
} if ( != stat(argv[], &file_stat))
{
perror("stat");
exit(-);
} print_file_stat(&file_stat);
return ;
}
运行结果:

Linux中的文件的更多相关文章
- Linux中检索文件
1 , Use locate command It is a fast way to find the files location, but if a file just created ,it w ...
- Linux中查看文件编码
在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱 ...
- 在Linux中查看文件的编码及对文件进行编码转换
如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Li ...
- Linux中的文件描述符与打开文件之间的关系
Linux中的文件描述符与打开文件之间的关系 导读 内核(kernel)利用文件描述符(file descriptor)来访问文件.文件描述符是非负整数.打开现存文件或新建文件时,内核会返回一个文件描 ...
- 5 个在 Linux 中管理文件类型和系统时间的有用命令
对于想学习 Linux 的初学者来说要适应使用命令行或者终端可能非常困难.由于终端比图形用户界面程序更能帮助用户控制 Linux 系统,我们必须习惯在终端中运行命令.因此为了有效记忆 Linux 不同 ...
- Linux中一个文件10行内容,如何输出5-8内容到屏幕
题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...
- [转帖]NotePad++编辑Linux中的文件
NotePad++编辑Linux中的文件 https://blog.csdn.net/chengqiuming/article/details/78882692 原作者 未经允许不允许转帖 加密自己参 ...
- linux中的文件编码及编码修改
查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想 ...
- 工具WinSCP:windows和Linux中进行文件传输
工具WinSCP:windows和Linux中进行文件传输 2016-09-21 [转自]使用WinSCP软件在windows和Linux中进行文件传输 当我们的开发机是Windows,服务器是Lin ...
- 【转】linux中inittab文件详解
原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...
随机推荐
- 汉诺(hanio)塔问题
规则:大盘子不能压在小盘子上.要求:将A柱子上所有盘(每个盘大小不同)放到C柱子上,使用B柱子作辅助. 比如柱子A上有n个盘,执行以下步骤: 1. 把n-1个盘从源柱移动到临时柱上: 2. 把源柱上剩 ...
- Java+Python+前端 学习资料大全 百度云盘
Java架构师3大阶段 链接:https://pan.baidu.com/s/1DlXh33y5t4cZUmZH0cLvCw 提取码:5s76 2019前端架构阶段 链接:https://pan.ba ...
- 备忘】HttpContextAccessor类
AspNetCore / src / Http / Http / src / HttpContextAccessor.cs // Copyright (c) .NET Foundation. All ...
- http的GET方法参数中不能传列表,接收端的key会变
如下 async initTable() { await getHostAttributesForUser({'username': this.username}).then(response =&g ...
- [摘抄] 2. module对象
2. module对象 Node内部提供一个Module 构建函数,所有函数都是Module的实例. function Moudle(id,parent) { this.id = id; this.e ...
- Android 指定调用已安装的某个“相机”App
在做项目时,有这样一个需求:如果我的手机中安装了四个相机软件,那么,在调用系统相机的时候,这四个相机软件都会被列出来,但是其中的两个在拍照完后并不能将拍得的照片返回给我,因此,能不能指定开启一个我已知 ...
- Linux下设置Nginx开机自启
1.本地环境 [root@dev ~]#cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 2.在/etc/init.d创建ngi ...
- k8s之StatefulSet介绍(六)
复制有状态的Pod replicaSet通过一个pod模版创建多个pod副本.这些副本除了它们的名字和IP地址不同外,没有别的差异.如果pod模版里描述了一个关联到特定持久卷声明的数据卷,那么Repl ...
- Beta冲刺第3次
一.团队成员的学号姓名列表 学号 姓名 201731103226 翟仕佶 201731062517 曾中杰 201731062424 杨模 201731062632 邓高虎 201731062624 ...
- 版本问题---keras和tensorflow的版本对应关系
keras和tensorflow的版本对应关系,可参考: Framework Env name (--env parameter) Description Docker Image Packages ...