文件类型

来源:互联网 发布:mac没有管理员账户 编辑:程序博客网 时间:2024/05/03 07:43

Linux 现在支持的比较流行的文件系统是Ext2/Ext3,通常均支持 普通文件,目录文件,特殊文件,链接文件,符号链接文件以及管道文件等6种。


普通文件

普通文件可以存储 ASCII纯文本,shell脚本,源代码,配置文件,各种文档,以及二进制程序代码等,所以说普通文件是应用最多的文件类型。

由于Linux并不刻意区分文件类型,不像windows拥有扩展名,但是平常为了阅读方便我们还是最好加一个后缀,比方说脚本.sh。同时我们可以通过file或者ls命令确定文件类型。

二进制文件:我们可以通过命令od来对文件进行ascii / hex / oct 显示


它存储的不是普通意义上的数据,而是一系列的文件名及信息节点号,除了存储内容以外,它跟普通文件的存储方式是一样的,它主要提供文件名,信息节点和文本数据的关联;也就是说它决定了文件系统的组织结构。通过节点信息实现了文件名与数据的映射。

ls –ai 用于显示文件名和节点号。

Mkdir

Rmdir

Getdents

 

文件层次标准(filesystem hierarchy standardFHS)在文件中规定了目录的位置和名称。

Linux用特殊文件作为文件与I/O之间的接口,使用户可以像访问普通文件一样访问外部设备。特殊文件不包含任何数据,相反,它是提供一种机制,指出物理设备和文件名的一种映射。系统支持的每个设备,包括内存,都与一个特殊文件相关联。

 

特殊文件:

特殊文件可以通过命令mknod或系统创建,但是同时你必须提供驱动程序,并且集成到内核里面,否则即使你创建了特殊文件也是不能够访问。

Mknod specialtype [major minor]

Special 就是特殊文件名,比如我们平常说的硬盘/dev/sad0

Major   主设备号,是驱动程序指向的不同类型设备的一个索引,比如/dev/sad0只会就是指向硬盘位置。而minor相当于当我们对他继续划分时的一个特定区域,比方说我们可以再定义sad1/sad2等。

特殊文件跟unix一样分为块特殊文件和字符特殊文件。通常块用于存储数据,而字符特殊文件用于传输数据,比方说硬盘,cd都是块,而终端,打印机,连接到并行或串行端口都是字符设备。

块设备:  一个典型的块是由512,1024或4096个字节组成,它是利用固定长度的数据块来传数据,先储存到系统的缓冲区,然后再写入块设备。

字符设备:它是每一次按字符进行传输,而不是固定长度的块,所以他就不会有因中途断电,等造成的文件不匹配情况。它在驱动程序和进程之间直接传递,中间不需要缓冲区。常见的设备有/dev/console  打印机 以及串行端口设备。

特殊文件:因为每个设备都对应一个特殊文件,而不是说每个设备都是一个特殊文件,它描述的仍旧是一个对应关系,所以当你增加一个驱动设备就需要进行操作让系统认识并且把这个设备关联起来,也就是用所谓的定义特殊文件。需要下面几个步骤:

1:安装文件的驱动程序

2:更新系统配置表,描述新增加设备及驱动程序

3:重新生成linux内核,让其包含新的设备

4:利用mknod命令创建特殊文件

4个系统默认的字符设备 /dev/null   /dev/zero   /dev/mem   /dev/kmem


链接文件

1.硬链接文件和原文件指向同样的数据,两者就像科隆一样,inode号也相同,当删除原文件时,硬链接文件仍然存在有效,也就是说如果你删除文件的话,你可以通过这个链接符号查看原先的位置的东西。

2:符号链接:本身也是一个数据文件,只不过里面存的是一个路径而已,所以你通过ls -s命令显示的时候,文件的大小就是它所关联到的目的文件的路径长度。符号文件会重新建立inode,同样拥有自己的数据块,存的东西也就是上面所说的一个路径。为了创建符号链接文件,你可以通过ls -s 命令或者symlink()系统调用实现



原创粉丝点击