您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關linux中crw brw lrw等等文件屬性指的是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
什么是文件?
所有的文件其實都是一串字符流,不過當用合適的解析方法,可以得到有效信息,人們為了方便對文件進行操作,便按照文件的解析方法的不同,給了文件不同的種類,并用下邊的方式來標記給人看。
今天在查看 /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.
(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,最后,優秀程序在執行開始首先要對操作的文件判斷權限,如果沒有權限,需要對使用者進行提醒。
(3)如何修改權限?
shell中有chmod命令,同樣也有chmod API,所以使用這個API即可。
(4)新創建的文件的權限是怎么確定的?
linux有個 umask 的類似于變量的東西,新文件的權限通過 umask 來確定。umask可以在shell中改變。
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
感謝各位的閱讀!關于“linux中crw brw lrw等等文件屬性指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。