Linux操作系统:文件概念与文件的分类

文件

文件(File)是被命名的相关信息的集合体。它通常存放在外存(如磁盘、磁带)上,可以作为一个独立单位存放和实施相应的操作(如打开、关闭、读、写等)。例如用户编写的一个源程序、经编译后生成的目标代码程序、初始数据和运行结果等,均可以文件形式保存。所以,文件表示的对象相当广泛。一般地,文件是由二进制代码、字节、行或记录组成的序列,它们由文件创建者或用户定义。

文件中的信息由创建者定义。很多不同类型的信息都可存放在文件中,如源程序、目标程序、可执行程序、数值数据、文本、工资单、图形图像、录音等。根据信息类型,文件具有一定的结构。如文本文件是一行一行(或页)的字符序列;源文件是子程序和函数序列,它们又有自己的构造,如数据说明和后面的执行语句;目标文件是组成模块的字节序列,系统链接程序知道这些模块的作用;而可执行文件是由一系列代码段组成的,装入程序可把它们装入内存,然后运行。

文件类型

为便于管理和控制文件,常把文件分成若干类型。由于不同系统对文件的管理方式不同,因而对文件的分类方法也有很大差异。下面是常用的几种文件分类方法。

  • 按用途分类

(1)系统文件—— 由操作系统及其他系统程序的信息所组成的文件。这类文件对用户不直接开放,只能通过操作系统提供的系统调用为用户服务。

(2)库文件—— 由标准子程序及常用的应用程序组成的文件。这类文件允许用户使用,但用户不能修改它们。

(3)用户文件—— 由用户创建、管理的文件,如源程序、目标程序、原始数据、计算结果等。这类文件可由创建者(即文件主)或被授权者进行适当的读、写或其他操作。

  • 文件中的数据形式分类

(1)源文件—— 从终端或输入设备输入的源程序和数据所构成的文件,它通常由ASCII码或汉字组成。

(2)目标文件—— 源程序经过相应语言的编译程序进行编译后,尚未经过链接处理的目标代码所形成的文件。它属于二进制文件。

(3)可执行文件—— 经过编译、链接之后所形成的可执行目标文件。

  • 按存取权限分类

(1)只读文件—— 仅允许对其进行读操作的文件,不允许写操作。

(2)读写文件—— 允许文件主和被授权用户对其进行读或写操作的文件。

(3)可执行文件—— 允许被授权用户执行它,但通常不允许读或写。

  • 按保存时间分类

(1)临时文件—— 用户在一次解题过程中建立的“中间文件”,它只保存在磁盘上,当用户退出系统时,它也随之撤消。

(2)永久文件—— 长期保存的有价值的文件,以备用户经常使用。

  • 在UNIX/Linux和MS-DOS系统中,按文件的内部构造和处理方式分类

在这些系统中文件类型主要有普通文件、目录文件和特殊文件。

(1)普通文件—— 由表示程序、数据或文本的字符串构成,内部没有固定的结构。这类文件包括一般用户建立的源程序文件、数据文件、目标代码文件,也包括各种系统文件(如操作系统本身的众多代码文件)和库文件(如标准I/O文件和数学函数文件)。

(2)目录文件—— 由下属文件的目录项构成的文件。它类似于人事管理方面的花名册—— 本身不记录个人的档案材料,仅仅列出姓名和档案分类编号。对目录文件可进行读、写等操作。

(3)特殊文件—— 特指各种外部设备。为了便于统一管理,系统把所有I/O设备都作为文件对待,按文件格式提供用户使用,如目录查找、存取权限验证等方面与普通文件相似,而在具体读、写操作上,要针对不同设备的特性进行相应处理。特殊文件分为字符特殊文件和块特殊文件。前者是有关输入/输出的设备,如终端、打印机和网络等;后者是存储信息的设备,如硬盘、软盘和磁带等。

普通文件通常分为ASCII文件和二进制文件。ASCII文件由只包含ASCII字符的正文行组成,每个正文行以回车符或换行符终止,各行的长度可以不同。ASCII文件又称文本文件,常用来存储资料、程序源代码和文本数据。文本文件的最大特点是可以直接显示和打印,可用普通文本编辑器进行编辑加工。

二进制文件所包含的每个字节可能有256种值。因此,对于表达信息来说,二进制文件是一种更为有效的方式,但它不能在终端上直接显示出来。大家最熟悉的二进制文件恐怕就是可执行文件。

可执行文件与一般文本文件不同,都有内部结构。在UNIX/Linux系统中它有5个区,依次是文件头、正文段、数据段、重定位区和符号表区。

文件头结构由幻数(标志可执行文件的特征),正文段长度,数据段长度,BSS段(Block Started by Symbol,存放未初始化的数据)长度,符号表长度,入口单元及各种标志组成。重定位时利用重定位区,而符号表用于调试程序;

存档文件是二进制文件的另一示例。在UNIX/Linux系统中,它由编译过、但未链接的库过程(模块)集合组成。每个存档文件的结构是在其目标模块之前有一个文件头,这个文件头由模块名、创建日期、文件拥有者、保护代码和文件长度等项组成。文件头全是二进制数码;

所有操作系统都必须至少识别一种文件类型—— 它自己的可执行文件。有些操作系统可以识别多种文件类型。一般情况下,对文件进行操作时必须注意其类型,特别是不同操作系统所识别的文件类型是不一致的。

文件的命名

文件是抽象机制,提供在磁盘上存放信息和以后从中读出的方法。用户不必了解信息如何存放、存放在何处、磁盘如何实际工作等细节。抽象机制最重要的特性就是“按名”管理对象。用户对文件也是“按名存取”的。

很多操作系统支持的文件名都由两部分构成:文件名和扩展名。二者间用圆点分开,如prog.c。扩展名也称为后缀,利用扩展名可以区分文件的属性。

(0)

相关推荐

  • 谷歌发布 Fuchsia OS“原生”运行安卓和 Linux 应用方法

    IT之家2月14日消息外媒 9to5 Google 报道,多年来,谷歌一直在开发 Fuchsia OS,这是一款明显不基于 Linux 的操作系统.Fuchsia OS 操作系统的最新提案展示了这款 ...

  • Linux系统结构包括什么?

    众所周知,Linux是免费.开源的操作系统,被广泛的应用于服务器领域,全球95%的企业级服务器都是Linux系统,有着不可或缺的作用.而说起Linux系统,很多人都比较好奇Linux系统结构包括什么? ...

  • Linux系统中常见目录有哪些?linux运维知识

    Linux系统中常见目录有哪些?随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,市场对于Linux运维人才的需求也是逐渐增加.L ...

  • Linux系统常见的隐形文件分类!

    在Linux系统中,除了我们常见的文件之外,其实还有很多隐形文件的存在,那么你知道常见的隐形文件有哪些?跟着小编来看看吧. 1. shell和命令行程序的配置文件,根据使用的特定shell和类似命令的 ...

  • linux(ubuntu)根目录下各文件夹的功能

    Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件. / ...

  • securecrt linux与windows 互传文件 | 《Linux就该这么学》

    导读 windows与linux互传文件,最常用的工具,就是ftp,sftp了,这二个工具用起来比较麻烦,目录深的话,很郁闷.有没有命令,可以随时下载,随时上传的.今天才发现这样的命令sz/rz,上传 ...

  • 使用pscp实现Windows 和 Linux服务器间远程传递文件

    一.PSCP简介 PSCP (PuTTY Secure Copy client)是PuTTY 提供的文件传输工具,通过SSH连接,在两台机器之间安全的传输文件,可以用于任何SSH(包括SSH v1.S ...

  • Linux里查看、更改文件时间

    如何查看文件的时间? stat指令用于显示文件inode信息,其中包括atime,mtime,ctime三种时间信息. 语法:stat [参数] [文件名] 关于三种时间信息 Access Time: ...

  • Linux笔记【004】| 文件/文件夹的基本操作命令

    一.文件操作命令 1.创建 命令:touch 语法:#touch 文件的名字文件名可以是一个完整的路径 如果后面的参数文件名指定了路径,则表示在指定的路径下创建:如果只是传递一个文件名,则表示在当前目 ...

  • Linux笔记【007】| 文件/文件夹属性设置

    一.不同用户之间的切换 上一章介绍了用户和用户组,没有介绍不同用户之间的切换,这里介绍一下su命令,用来切换用户,其实很简单,命令是[su 用户名],之前一直都是在root用户下操作,你是root用户 ...

  • 小技巧!让Linux和百度云实现文件互传。

    希望所有学员都可以站在生信技能树的舞台上发光发热! 下面是粉丝随机投稿 作为一只科研生信狗,每晚卷完时,时常会担心自己的数据安全问题(虽然也没啥重要成果).使用实验室的硬盘备份,还需要插-拔-查等步骤 ...

  • Linux中用tar命令对文件夹进行打包压缩

    一.打包的概念 打包:指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署. 压缩或打包文件常见扩展名       *.tar, *.tar.gz, *.gz, *.bz2 ...