什么是文件?
所有的文件其實(shí)都是一串字符流,不過(guò)當(dāng)用合適的解析方法,可以得到有效信息,人們?yōu)榱朔奖銓?duì)文件進(jìn)行操作,便按照文件的解析方法的不同,給了文件不同的種類,并用下邊的方式來(lái)標(biāo)記給人看。
今天在查看 /dev/fuse 文件的屬性的時(shí)候,看到了crw_ 權(quán)限位,一時(shí)反應(yīng)不過(guò)來(lái):
[root@localhost ~]# ll /dev/fuse
crw-rw-rw-. 1 root root 10, 229 Sep 20 11:12 /dev/fuse
在這里進(jìn)行備注一下,相關(guān)答案來(lái)源于網(wǎng)絡(luò)。
linux中c表示字符設(shè)備文件,b表示塊設(shè)備文件,l表示符號(hào)鏈接文件,r表示可讀權(quán)限,w表示可寫權(quán)限。
linux文件屬性解讀:
文件類型:
-:普通文件 (f)
d:目錄文件
b:塊設(shè)備文件 (block)
c:字符設(shè)備文件 (character)
l:符號(hào)鏈接文件(symbolic link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件權(quán)限: 9位,每3位一組,每一組:rwx(讀,寫,執(zhí)行),當(dāng)改組不具有某一權(quán)限用-代替。
第一組為: 文件擁有者的權(quán)限, 該文件的擁有者可以讀寫,但不可執(zhí)行;
第二組為: 同群組的權(quán)限
第三組為: 其他非本群組的權(quán)限
下面看下linux中的文件種類
(1)普通文件('-', regluar file)
分為:二進(jìn)制文件和文本文件
二進(jìn)制文件,是給機(jī)器看的,例如:.bin, .elf文件
文本文件:給人看的,一般為ASCII編碼,需要用ASCII編碼解析,例如:.txt,.c文件。
(2)文件夾文件 ( 'd ', directory file)
一種特殊的文件,特殊在:需要用其庫(kù)函數(shù)打開。
(3)鏈接文件 ('l', link file)
這里是軟連接文件,
注意:軟連接文件和硬鏈接文件的差別,
軟連接文件,本身就是一個(gè)獨(dú)立的文件,有自己的 inode,
硬鏈接文件,不是獨(dú)立的文件,他和被鏈接的文件共用同一個(gè) inode.
(4)管道文件 ('p', piple file)
用于進(jìn)程通信。
(5)套接字文件 ('s', socket file)
用于網(wǎng)絡(luò)。
(6)字符設(shè)備文件 ('c', character file)
為虛擬文件,因?yàn)楸旧聿淮嬖谟谟脖P中,是fs創(chuàng)建的。
不能直接讀寫,要使用API.
(7)塊設(shè)備文件 ('b', block file)
也是虛擬文件,為fd創(chuàng)建,要使用API讀寫。
3. 如何獲取一個(gè)文件的屬性?
(1)shell 中使用 stat 命令
(2)程序中使用 stat API
4. 文件的權(quán)限
(1)文件權(quán)限如何獲得?
在程序中使用 stat API,可以獲得 st_mode 元素,st_mode 是一個(gè)以位為單位記錄內(nèi)容,所以只需要對(duì)對(duì)應(yīng)位進(jìn)行 & 即可,linux提供了對(duì)應(yīng)的宏,可以用宏。
(2)如何判斷程序?qū)ξ募欠裼袡?quán)限?
首先,程序?qū)ξ募臋?quán)限,是由執(zhí)行程序的用戶決定的,用戶有權(quán)限,程序就有,用戶沒有,程序就沒有,其次在程序中判斷是否有權(quán)限使用 access API,最后,優(yōu)秀程序在執(zhí)行開始首先要對(duì)操作的文件判斷權(quán)限,如果沒有權(quán)限,需要對(duì)使用者進(jìn)行提醒。
(3)如何修改權(quán)限?
shell中有chmod命令,同樣也有chmod API,所以使用這個(gè)API即可。
(4)新創(chuàng)建的文件的權(quán)限是怎么確定的?
linux有個(gè) umask 的類似于變量的東西,新文件的權(quán)限通過(guò) umask 來(lái)確定。umask可以在shell中改變。
總結(jié)
以上所述是小編給大家介紹的linux中crw brw lrw等等文件屬性是什么 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!