Linux文件系统数如下:

在 Linux 系统中,文件系统通过目录"包含"子目录及文件的方式,来组织成一个树状结构。那么目录到底是如何"包含"其他目录及文件的呢?

目录,在 Linux 中,其实也是一种文件,所以它也是由“inode+数据块”构成的。而其文件内容是一个列表,每一个列表项记录“inode-number+filename"。

因此,我们通常所说的目录 a "包含" 文件 b,其实现层面上的意思是,目录 a 的内容列表里有一个关于文件 b 的列表项,即 b 的 “inode-number+filename”。

综上,Linux 中,一个文件(包括目录)的文件名,及文件名与 inode 的对应关系,都是由包含该文件的目录所描述的。

下面的例子,演示了如何打印指定目录的内容列表:

/*
* 文件名:directory.c
* 描述: 打印指定目录的内容列表
*/ #include<stdio.h>
#include<stdlib.h>
#include<dirent.h>
#include<sys/types.h> int main(int argc, char *argv[])
{
if ( != argc)
{
fprintf(stderr,"Usage : %s directory...\n",argv[]);
exit(-);
} DIR* dp = NULL;
struct dirent *dptr = NULL;
if (NULL == (dp = opendir(argv[])))
{
fprintf(stderr,"Can not open Input Directory [%s]\n",argv[]);
exit(-);
}
else
{
printf("Directory [%s] Content List: \n",argv[]);
while(NULL != (dptr = readdir(dp)))
{
printf("inode-number : %-10ld \t filname : %s\n",dptr->d_ino,dptr->d_name);
} closedir(dp);
} return ;
}

运行结果:

在上述例子中,我们获取了一个目录所包含的所有文件的“inode-number+filename”列表。其中,有两个*特殊的文件名 *“.” 和 “..”:

“.”代表当前目录自身;

".."代表包含当前目录的上一级目录。

通过这两个特殊的文件名,我们也可以使用我们在 2.3 节中编写的 filestat 程序去获取相应的 inode-number。另外,如果“.” 和 “..”的 inode-number 是一样的时候,说明该目录已经是根目录。

linux中的目录的更多相关文章

  1. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  2. Unix/Linux中/usr目录的由来

    在Linux系统中,有一个很重要的目录——/usr目录.关于这个目录名称的由来,网上主要有下面几种说法: user的缩写 User Shareable Read-only的缩写 Unix/User S ...

  3. Linux中 /boot 目录介绍 【转载】

    Linux中 /boot 目录介绍 转自:点击打开链接 一./boot/目录中的文件和目录 Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有: (1)系统Kernel的配置文件 ...

  4. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

  5. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  6. linux中各目录及详细介绍

    一.Linux文件系统的层次结构 在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构,如图: 二.目录 1.目录的定义 目录相当于Windows中的文件夹,目 ...

  7. Linux中一些目录名称的含义

    挖Linux中的古老缩略语[2005-06-22 15:23][Nigel McFarlane][TechTarget] Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世纪是相对于计算机 ...

  8. Linux中各个目录作用

    对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦.比如没有C盘,没有分盘符,一大堆不知道用途的文件 ...

  9. linux中的目录配置

    一.权限对文件的重要性 1.r(read):可读取此文件的实际内容,读取文本文件的文字内容等. 2.w(write):可以编辑,新增或者是修改该文件的内容. 3.x(execute):该文件具有可以被 ...

  10. linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)

    本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...

随机推荐

  1. NET Core 导入web.config配置文件

    1.首先需要在NET Core项目中引入System.Configuration.ConfigurationManager,它可以读取web.config中的相关配置信息. 2. 将web.confi ...

  2. 接口例_龟车赛跑_Java

    此例演示java中接口的一般用法. 屋子里有一群程序员,每个人在写着自己的类,共同构建一个世界. 项目经理突然出现:“打扰大家一下,公司决定举办一个竞速比赛,你们写的类都可以参加.为了比赛的顺利进行, ...

  3. Spring Security 解析(七) —— Spring Security Oauth2 源码解析

    Spring Security 解析(七) -- Spring Security Oauth2 源码解析   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因 ...

  4. Java自学-日期 Date

    Java的日期类Date Date类 注意:是java.util.Date; 而非 java.sql.Date,此类是给数据库访问的时候使用的 示例 1 : 时间原点概念 所有的数据类型,无论是整数, ...

  5. Java自学-接口与继承 UML图

    UML 图 步骤 1 : UML 图 -- 类之间的关系 UML-Unified Module Language 统一建模语言,可以很方便的用于描述类的属性,方法,以及类和类之间的关系 步骤 2 : ...

  6. drf--视图家族

    目录 drf 视图家族 前期准备 总路由 urls.py 基表:utils/models.py 模型层 api/models.py 序列化器 api/serializers.py 基本视图(views ...

  7. Django---简易图书管理系统(B/S架构)

    Django---简易图书管理系统 一丶配置 创建app01 # 1.在具有manage.py文件的目录下,启动cmd,创建一个新的app01 python manage.py startapp ap ...

  8. Workerman MySQL组件Connection用法总结

    一.初始化连接 $db = new \Workerman\MySQL\Connection('host', 'port', 'user', 'password', 'db_name'); 二.获取所有 ...

  9. phpStudy配置多站点多域名和多端口的方法

    切记:要想多个域名指向同一个项目,必须将phpstudy的根目录指向你项目所指的地方(原根目录是WWW),修改位置(其他菜单选项 - 软件设置 - 端口常规设置 - 网站目录) 站点:类似于  WWW ...

  10. thinkPHP+LayUI 懒加载实现

    html <div class="layui-container" id="container"> </div> js,要引入layui ...