1.文件类型

Unix/Linux对数据文件(.mp3、.bmp),程序文件(.c、.h、*.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。 Linux下一切皆文件。

在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Unix/Linux系统中文件可以没有扩展名。

在这里插入图片描述

2.文件类型分类

通常,Unix/Linux系统中常用的文件类型有7种:普通文件、目录文件、设备文件、管道文件、链接文件和套接字。

1)普通文件

普通文件是计算操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。

在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型。

2)目录文件

Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。

目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。

每个目录文件至少包括两个条目,“…”表示上一级目录,“.”表示该目录本身。

3)设备文件

Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。

字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。

deng@itcast:~/share$ echo “hello world” > /dev/pts/22 hello world

4)管道文件

管道文件也是Unix/Linux中较特殊的文件类型,这类文件多用于进程间的通信。

5)链接文件

似于 windows 下的快捷方式,链接又可以分为软链接(符号链接)和硬链接。

示例:

普通文件

deng@itcast:~/test$ ls -l /etc/passwd

-rw-r--r-- 1 root root 2372 321 22:48 /etc/passwd

目录文件

deng@itcast:~/test$ ls -ld /etc

drwxr-xr-x 134 root root 12288 528 11:28 /etc

字符设备

deng@itcast:~/test$ ls -l /dev/input/mouse0

crw-rw---- 1 root input 13, 32 526 17:01 /dev/input/mouse0

块设备

deng@itcast:~/test$ ls -l /dev/sda1

brw-rw---- 1 root disk 8, 1 526 17:01 /dev/sda1

创建一个管道文件

deng@itcast:~/test$ mkfifo fifo

deng@itcast:~/test$ ls -l fifo

prw-rw-r-- 1 deng deng 0 528 11:59 fifo

 

符号链接

deng@itcast:~/test$ ls -l /bin/sh

lrwxrwxrwx 1 root root 4 1117 2017 /bin/sh -> dash

deng@itcast:~/test$

 

套接字文件

deng@itcast:~/tmp/test$ ls -l /run/systemd/notify

srwxrwxrwx 1 root root 0 88 11:00 /run/systemd/notify

 
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐