zoukankan      html  css  js  c++  java
  • [转载]Linux文件类型

    [转载]Linux文件类型

    来源:https://blog.csdn.net/lf_2016/article/details/53844768

    一、linux 下面所有东西都是文件,既然是文件那么这些文件类型又是如何进行区分的呢???
    在 windows 下面是通过文件的扩展名来区分文件类型的,但是在 linux 中却不是这儿样的。在 linux 中就没有所谓的文件扩展名,一个 linux 文件能不能被执行时取决于它的属性中是否有 x,与文件名一点关系都没有。一般我们所看到的文件扩展名只是为了给我们用户自己看的。

    提到文件的话就不得不先来简单了解一下 inode。
    inode: 索引结点,用来存放文件的基本信息。
    inode 是 unix/linux 操作系统中的一种数据结构,本质上是一个结构体,里面定义了一些变量,这些变量用来记录与文件相关的信息。在操作系统创建文件系统的时候就会创建大量的 inode。
    inode 这个结构体包含以下信息:
    1、inode 编号
    2、用来识别文件类型,以及用于 stat C 函数的模式信息
    3、文件的链接数
    4、属主的 UID
    5、属主的组的 ID(GID)
    6、文件的大小
    7、文件所使用的磁盘块的实际数目。
    8、最近一次修改的时间
    9、最近一次访问的时间
    10、最近一次更改的时间

    可见,除了文件名以及文件内容以外,inode 包含文件的所有信息,所以说文件名在 linux 下面是没有多大作用的。一般我们对某个文件进行操作是,是先找这个文件所连接的 inode,然后用 inode 编号对文件进行操作,但是当我们知道 inode 编号的时候是不能得到文件名的。

    二、linux 下的文件类型
    1. 普通文本: ( regular file)以”-“开头。

    img

    可以看到上面的文件属性中,都是以”-“开头的,这个”-“就表示它是一个普通文件。

    linux 下面的普通文本又包括一下三种:
    1.1、纯文本文档:
    这是 linux 中最多的一种文件类型,称为纯文本文档,我们是可以直接读到其中的数据。

    1.2、二进制文件:
    linux 中的可执行文件就是这种格式的。

    1.3、数据格式文件:
    有些程序在运行的过程中会读取某些特定格式的档案,这些特定格式的档案又称为数据文件,使用 cat 看到的都是乱码,因为它属于特殊格式的文件。

    2、目录:(directory) 以”d” 开头。
    在 linux 下面的一切都是以文件的形式存在的,所以目录就属于目录文件。

    img

    可以看到这些文件的属性中是以”d” 开头的,就表示它是一个目录文件。

    3、连接文件:(link) 以”l” 开头的文件

    img

    可以看到这些文件的属性中是以”l” 开头表示它们是链接文件。

    4、设备和设备文件:
    设备文件分为块设备文件额字符设备文件。我们进入 / dev 目录就会看好多这种文件。
    字符设备文件:以”c” 开头的文件,就是一些串行端口的接口文件,比如键盘、鼠标等。

    img

    可以看到这些文件的属性中是以”c” 开头表示它们是字符设备文件。

    块设备文件:以”b” 开头的文件,就是一些存储文件,比如硬盘、软盘等。

    img

    可以看到这些文件的属性中是以”b” 开头表示它们是块设备文件。

    5、套接字:(sockets) 以”s” 开头的文件。
    套接字文件还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过数据接口文件来进行数据通信。

    img

    可以看到这个文件的属性中是以”s” 开头表示它们是套接字文件。

    6、管道:(FIFO,pipe) 以”p” 开头的文件。
    管道文件也是一种特殊的文件类型也叫作数据输送文件,它主要的目的是解决多个程序同时访问一个文件所造成的错误问题。解决的方法就是 FIFO。
    管道文件的属性是以”p” 开头的。

  • 相关阅读:
    索引虚拟oracle virtual index
    用户盘云存储——百度网盘
    数据类型泛型的嵌套使用
    函数返回值C语言中malloc函数返回值是否需要类型强制转换问题
    控制文件oracle controlfile structure
    程序语言POJ 2406 Power Strings
    数组信息[置顶] php数组转换js数组操作及json_encode应用
    代码电话《程序员的第一年》情感编
    泛型通配符泛型中使用 通配符
    数字字符串一道有道实习生笔试算法题分析
  • 原文地址:https://www.cnblogs.com/jiading/p/12298064.html
Copyright © 2011-2022 走看看