什么是文件?
【linux中crw brw lrw等等文件屬性是什么,linux文件系統(tǒng)屬性介紹】所有的文件其實都是一串字符流,不過當(dāng)用合適的解析方法,可以得到有效信息,人們?yōu)榱朔奖銓ξ募M行操作,便按照文件的解析方法的不同,給了文件不同的種類,并用下邊的方式來標(biāo)記給人看 。
今天在查看 /dev/fuse 文件的屬性的時候,看到了crw_ 權(quán)限位,一時反應(yīng)不過來:
[root@localhost ~]# ll /dev/fusecrw-rw-rw-. 1 root root 10, 229 Sep 20 11:12 /dev/fuse在這里進行備注一下,相關(guān)答案來源于網(wǎng)絡(luò) 。
linux中c表示字符設(shè)備文件,b表示塊設(shè)備文件,l表示符號鏈接文件,r表示可讀權(quán)限,w表示可寫權(quán)限 。
linux文件屬性解讀:
文件類型:
-:普通文件 (f)
d:目錄文件
b:塊設(shè)備文件 (block)
c:字符設(shè)備文件 (character)
l:符號鏈接文件(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)
分為:二進制文件和文本文件
二進制文件,是給機器看的,例如:.bin, .elf文件
文本文件:給人看的,一般為ASCII編碼,需要用ASCII編碼解析,例如:.txt,.c文件 。
(2)文件夾文件 ( 'd ', directory file)
一種特殊的文件,特殊在:需要用其庫函數(shù)打開 。
(3)鏈接文件 ('l', link file)
這里是軟連接文件,
注意:軟連接文件和硬鏈接文件的差別,
軟連接文件,本身就是一個獨立的文件,有自己的 inode,
硬鏈接文件,不是獨立的文件,他和被鏈接的文件共用同一個 inode.
(4)管道文件 ('p', piple file)
用于進程通信 。
(5)套接字文件 ('s', socket file)
用于網(wǎng)絡(luò) 。
(6)字符設(shè)備文件 ('c', character file)
為虛擬文件,因為本身不存在于硬盤中,是fs創(chuàng)建的 。
不能直接讀寫,要使用API.
(7)塊設(shè)備文件 ('b', block file)
也是虛擬文件,為fd創(chuàng)建,要使用API讀寫 。
3. 如何獲取一個文件的屬性?
(1)shell 中使用 stat 命令
(2)程序中使用 stat API
4. 文件的權(quán)限
(1)文件權(quán)限如何獲得?
在程序中使用 stat API,可以獲得 st_mode 元素,st_mode 是一個以位為單位記錄內(nèi)容,所以只需要對對應(yīng)位進行 & 即可,linux提供了對應(yīng)的宏,可以用宏 。
(2)如何判斷程序?qū)ξ募欠裼袡?quán)限?
首先,程序?qū)ξ募臋?quán)限,是由執(zhí)行程序的用戶決定的,用戶有權(quán)限,程序就有,用戶沒有,程序就沒有,其次在程序中判斷是否有權(quán)限使用 access API,最后,優(yōu)秀程序在執(zhí)行開始首先要對操作的文件判斷權(quán)限,如果沒有權(quán)限,需要對使用者進行提醒 。
推薦閱讀
- 在docker中部署k8s的方法,k8s的搭建部署方法
- 求美劇貓鼠游戲1~6季 中英字幕
- 35歲應(yīng)該是中堅力量,華為為什么要裁掉35歲以上的老員工?
- linux基礎(chǔ)教程之特殊權(quán)限SUID、SGID和SBIT,linux教程系統(tǒng)特殊權(quán)限
- 35歲應(yīng)該是中堅力量,華為為什么非要裁掉35歲以上的老員工?
- 中國有哪些國產(chǎn)手機
- 中國手機名牌有哪些?
- 安全中心編輯按鈕
- 中關(guān)村是什么意思啊
- 中關(guān)村手機報價都是假的
