什么是文件?
所有的文件其实都是一串字符流,不过当用合适的解析方法,可以得到有效信息,人们为了方便对文件进行操作,便按照文件的解析方法的不同,给了文件不同的种类,并用下边的方式来标记给人看。
今天在查看 /dev/fuse 文件的属性的时候,看到了crw_ 权限位,一时反应不过来:
| [root@localhost ~]# ll /dev/fuse crw-rw-rw-. 1 root root 10, 229 Sep 20 11:12 /dev/fuse |
在这里进行备注一下,相关答案来源于网络。
linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限。
linux文件属性解读:
文件类型:
-:普通文件 (f)
d:目录文件
b:块设备文件 (block)
c:字符设备文件 (character)
l:符号链接文件(symbolic link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限: 9位,每3位一组,每一组:rwx(读,写,执行),当改组不具有某一权限用-代替。
第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,但不可执行;
第二组为: 同群组的权限
第三组为: 其他非本群组的权限
下面看下linux中的文件种类
(1)普通文件('-', regluar file)
分为:二进制文件和文本文件
二进制文件,是给机器看的,例如:.bin, .elf文件
文本文件:给人看的,一般为ASCII编码,需要用ASCII编码解析,例如:.txt,.c文件。
(2)文件夹文件 ( 'd ', directory file)
一种特殊的文件,特殊在:需要用其库函数打开。
(3)链接文件 ('l', link file)
这里是软连接文件,
注意:软连接文件和硬链接文件的差别,
软连接文件,本身就是一个独立的文件,有自己的 inode,
硬链接文件,不是独立的文件,他和被链接的文件共用同一个 inode.
(4)管道文件 ('p', piple file)
用于进程通信。
(5)套接字文件 ('s', socket file)
用于网络。
(6)字符设备文件 ('c', character file)
为虚拟文件,因为本身不存在于硬盘中,是fs创建的。
不能直接读写,要使用API.








