一、文件类型
Linux 系统下一共分为 7 种文件类型。通过 stat 命令或者 ls 命令来查看文件类型。
' - ':普通文件
' d ':目录文件
' c ':字符设备文件
' b ':块设备文件
' l ':符号链接文件
' s ':套接字文件
' p ':管道文件
stat会直接显示出文件类型,ls则是信息的第一个符号。
1.普通文件
普通文件(regular file)在 Linux 系统下是最常见的,如文本文件、二进制文件,编写的源代码
文件这些都是普通文件,也就是一般意义上的文件。 普通文件中的数据存在系统磁盘中,可以访问文件中的内容,文件中的内容以字节为单位进行存储于访问。
2.目录文件
目录(directory) 是文件夹,文件夹在 Linux 系统中是一种文件,是一种特殊文件。文件夹中记录了该文件夹本省的路径以及该文件夹下所存放的文件。
3.字符设备文件和块设备文件
设备文件(字符设备文件、块设备文件)对应的是硬件设备,在 Linux 系统中,硬件设备会对应到一个设备文件,应用程序通过对设备文件的读写来操控、使用硬件设备。
虽然有设备文件,但是设备文件并不对应磁盘上的一个文件,设备文件并不存在于磁盘中,而是由文件系统虚拟出来的,一般是由内存来维护, 当系统关机时,设备文件都会消失; 字符设备文件一般存放在 Linux 系统/dev/目录下,所以/dev 也称为虚拟文件系统 devfs。
4.符号链接文件
符号链接文件(link) 类似于 Windows 系统中的快捷方式文件,是一种特殊文件,它的内容指向的是另一个文件路径,当对符号链接文件进行操作时,系统根据情况会对这个操作转移到它指向的文件上去,而不是对它本身进行操作。
5.管道文件
管道文件(pipe) 主要用于通进程间信。
6.套接字文件
套接字文件(socket)是一种进程间通信的方式,与管道文件不同的是,它可以在不同主机上的进程间通信。
二、小结
普通文件是最常见的文件类型目录是一种文件类型
设备文件对应于硬件设备
符号链接文件类似于 Windows 的快捷方式
管道文件用于进程间通信
套接字文件用于网络通信