當前位置: 首頁>>技術教程>>正文


files – UNIX 模式字符串的第一個字符表示什麽?

, ,

問題描述

我非常熟悉 linux 文件權限和特殊權限(sticky bit、suid、guid)

但我不知道 c 代表什麽?是許可還是其他?我已經做了一些穀歌搜索,但無法弄清楚。

這是擁有它的設備文件。

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null

圖片參考:https://detailed.wordpress.com/2017/10/28/understanding-ls-command-output/

最佳答案

這意味著該文件是一個字符特殊文件 – 基本上是一個提供串行訪問的設備文件(與磁盤驅動器等塊特殊設備相反)。例如,終端和串行設備通過字符特殊文件( /dev/tty1/dev/ttyS0 等)進行接口。

有關設備文件的簡要介紹,請參見 Linux / UNIX: Device files [cyberciti.biz]。有關更詳細的討論,請參閱此 stackexchange 答案 Understanding /dev and its subdirs and files 。要了解底層數據結構,請參閱 Linux 內核模塊編程指南的第 4 章:Character Device Files [tldp.org]

次佳答案

第一個字符標識 Unix File Type :字符設備被標記為 c 作為模式字符串的第一個字母。同樣,塊設備用 b 標記,

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 21 21:50 /dev/null
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 21 21:50 /dev/sda

還有更多這樣的特殊設備(文件在某種意義上說一切都是 Linux 中的文件),

d : directory
s : socket
p : pipe
D : Door
l : symbolic link etc.

有關詳細信息,請參閱此 wikipedia 頁麵。

第三種答案

ls -l 輸出一個 10 符號的 UNIX 信息字符串,通常稱為權限字符串。例如

-rw-rw-r--  1 userName groupName   13200650 Dec 13 21:23 fileName

權限字符串或模式字符串的第一個字符,稱為文件描述符,表示文件類型,其餘九個三個一組表示相關文件的權限,其中:

  • 第一組三個字符(10個字符中的第一個字符之後)表示所有者的權限,

  • 第二組三個指定權限組,

  • 最後一組三個指定其他人(或世界)的權限。

這裏,在上麵的例子中,第一個字符/符號 “-” 表示一個普通文件。

在以下示例中,

crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
crw-rw-rw- 1 root root 1, 5 Jan 13 20:56 /dev/zero

權限字符串的第一個字符是 “c”,如上所述,它是一個 file-type 指示符,表示字符設備。

除了 -c 其他一些文件描述符是:

  • d ->目錄

  • l ->符號鏈接

  • s -> Unix 套接字

  • b ->塊設備

  • p ->管道

  • D ->門

參考:

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/12772.html,未經允許,請勿轉載。