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” 开头的。

  • 相关阅读:
    ubuntu12.04 死机 卡屏 画面冻结解决方案
    Install Firefox 20 in Ubuntu 13.04, Ubuntu 12.10, Ubuntu 12.04, Linux Mint 14 and Linux Mint 13 by PPA
    ListView1.SelectedItems.Clear()
    android studio 下载地址
    jquery.slider.js jquery幻灯片测试
    jquery.hovermenu.js
    jquery.tab.js选项卡效果
    适配 placeholder,jquery版
    jquery.autoscroll.js jquery自动滚动效果
    将 Google Earth 地图集成到自己的窗体上的 简单控件
  • 原文地址:https://www.cnblogs.com/jiading/p/12298064.html
Copyright © 2011-2022 走看看