【Linux】文件类型

来源:互联网 发布:巨人城刷龙啸翻牌软件 编辑:程序博客网 时间:2024/05/01 04:54

我们知道在Linux下一切皆文件,那么Linux下是如何区分这些文件的呢?我们知道在windows下是查看文件的后缀名来区分各种各样的文件,但是在Linux下却没有后缀名那么我们如何区分呢?

一、inode

文件数据都存储在“块”中,那么我们必须要用一个地方去存储文件的各种信息,包含了文件的创建者,文件的创建实现,文件的大小,文件的权限等信息,存储这些信息的区域就叫做inode,中文名称“索引结点”。

inode是Linux下的一种数据结构,其实是一种结构体,包含了一些变量,这些变量用来记录文件的各种信息,因为包含了各种关于文件的信息,所以它也是Linux下管理文件的最基本单位,也是链接目录和文件的桥梁。

inode结构体主要包含以下信息:

  1. inode编号。
  2. inode权限
  3. inode拥有者id
  4. inode所属组id
  5. 文件大小
  6. inode最近一次读取的时间
  7. inode最近一次修改的时间
  8. inode产生的时间
  9. inode在做IO时的区块大小

以上只是inode结构体的一部分内容,由此可见一个inode包含了文件的很多信息,因此我们如果需要对一个文件进行操作,首先要做到的就是找到这个文件所对应的inode编号,然后用这个inode对文件进行操作。

二、Linux下文件类型

Linux下的文件类型主要分为7类:

  • d:文件夹。
  • -:普通文件
  • l:链接(和windows下的快捷方式类似)
  • b:块设备文件
  • p:管道文件
  • c:字符设备文件
  • s:套接字文件

(1)文件夹

文件夹是以“d”开头的文件
这里写图片描述
我们可以看到在文件属性的最开头是以d字母为开头,这便是目录文件。

(2)普通文件

普通文件以“-”开头的文件

这里写图片描述

我们可以看到在文件属性的最开头是以“-”为开头,这便是普通文件。

普通文件又分为以下三种:

  • 二进制文件
    可执行文件就是二进制文件
  • 纯文本文件
    纯文本文档
  • 数据格式文件
    某些特定格式的档案

(3)链接文件

链接文件是以“l”开头的文件
这里写图片描述

(4)字符设备文件

我们进入/dev目录就会看好多这种文件。

这里写图片描述

字符设备文件:以”c”开头的文件,就是一些串行端口的接口文件,比如键盘、鼠标等
这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。

(5)块设备文件

块设备文件以”b”开头的文件。

(6)套接字

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

(7)管道

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

原创粉丝点击