linux中crw brw lrw等等文件属性是什么,linux文件系统属性介绍

什么是文件?
【linux中crw brw lrw等等文件属性是什么,linux文件系统属性介绍】所有的文件其实都是一串字符流,不过当用合适的解析方法,可以得到有效信息,人们为了方便对文件进行操作,便按照文件的解析方法的不同,给了文件不同的种类,并用下边的方式来标记给人看 。
今天在查看 /dev/fuse 文件的属性的时候,看到了crw_ 权限位,一时反应不过来:
[root@localhost ~]# ll /dev/fusecrw-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.
(7)块设备文件 ('b', block file)
         也是虚拟文件,为fd创建,要使用API读写 。
3. 如何获取一个文件的属性?
(1)shell 中使用 stat 命令
(2)程序中使用 stat API
4. 文件的权限
(1)文件权限如何获得?
在程序中使用 stat API,可以获得 st_mode 元素,st_mode 是一个以位为单位记录内容,所以只需要对对应位进行 & 即可,linux提供了对应的宏,可以用宏 。
(2)如何判断程序对文件是否有权限?
首先,程序对文件的权限,是由执行程序的用户决定的,用户有权限,程序就有,用户没有,程序就没有,其次在程序中判断是否有权限使用 access API,最后,优秀程序在执行开始首先要对操作的文件判断权限,如果没有权限,需要对使用者进行提醒 。

推荐阅读