linux中crw brw lrw等等文件属性是什么
什么是文件?
所有的文件其实都是一串字符流,不过当用合适的解析方法,可以得到有效信息,人们为了方便对文件进行操作,便按照文件的解析方法的不同,给了文件不同的种类,并用下边的方式来标记给人看。
今天在查看/dev/fuse文件的属性的时候,看到了crw_权限位,一时反应不过来:
[root@localhost~]#ll/dev/fuse crw-rw-rw-.1rootroot10,229Sep2011:12/dev/fuse
在这里进行备注一下,相关答案来源于网络。
linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限。
linux文件属性解读:
文件类型:
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号链接文件(symboliclinkfile)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限:9位,每3位一组,每一组:rwx(读,写,执行),当改组不具有某一权限用-代替。
第一组为:文件拥有者的权限,该文件的拥有者可以读写,但不可执行;
第二组为:同群组的权限
第三组为:其他非本群组的权限
下面看下linux中的文件种类
(1)普通文件('-',regluarfile)
分为:二进制文件和文本文件
二进制文件,是给机器看的,例如:.bin,.elf文件
文本文件:给人看的,一般为ASCII编码,需要用ASCII编码解析,例如:.txt,.c文件。
(2)文件夹文件('d', directoryfile)
一种特殊的文件,特殊在:需要用其库函数打开。
(3)链接文件('l',linkfile)
这里是软连接文件,
注意:软连接文件和硬链接文件的差别,
软连接文件,本身就是一个独立的文件,有自己的inode,
硬链接文件,不是独立的文件,他和被链接的文件共用同一个inode.
(4)管道文件('p',piplefile)
用于进程通信。
(5)套接字文件('s',socketfile)
用于网络。
(6)字符设备文件('c',characterfile)
为虚拟文件,因为本身不存在于硬盘中,是fs创建的。
不能直接读写,要使用API.
(7)块设备文件('b',blockfile)
也是虚拟文件,为fd创建,要使用API读写。
3.如何获取一个文件的属性?
(1)shell中使用stat命令
(2)程序中使用statAPI
4.文件的权限
(1)文件权限如何获得?
在程序中使用statAPI,可以获得st_mode元素,st_mode是一个以位为单位记录内容,所以只需要对对应位进行&即可,linux提供了对应的宏,可以用宏。
(2)如何判断程序对文件是否有权限?
首先,程序对文件的权限,是由执行程序的用户决定的,用户有权限,程序就有,用户没有,程序就没有,其次在程序中判断是否有权限使用accessAPI,最后,优秀程序在执行开始首先要对操作的文件判断权限,如果没有权限,需要对使用者进行提醒。
(3)如何修改权限?
shell中有chmod命令,同样也有chmodAPI,所以使用这个API即可。
(4)新创建的文件的权限是怎么确定的?
linux有个umask的类似于变量的东西,新文件的权限通过umask来确定。umask可以在shell中改变。
总结
以上所述是小编给大家介绍的linux中crwbrwlrw等等文件属性是什么,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!