我非常熟悉 Linux 文件权限和特殊权限(粘滞位、suid、guid)
但我不知道这c
代表什么?是许可还是其他什么?我在 Google 上搜索了一下,但还是搞不清楚。
这是包含该内容的设备文件。
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/
答案1
这意味着该文件是字符特殊文件- 基本上是一个提供串行访问的设备文件(而不是阻止特殊设备(例如磁盘驱动器)。例如,终端和串行设备通过字符特殊文件(/dev/tty1
,/dev/ttyS0
等等)进行交互。
有关设备文件的简要介绍,请参阅Linux/UNIX:设备文件[cyberciti.biz]。有关更详细的讨论,请参阅此 stackexchange 答案了解 /dev 及其子目录和文件要了解底层数据结构,请参阅《Linux 内核模块编程指南》第 4 章:字符设备文件[tldp.org]
答案2
第一个字符标识Unix 文件类型:字符设备以模式字符串的首字母 来标记。同样,块设备以,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.
看到这个维基百科页面以了解更多详情。
答案3
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”如上所述,它是一个文件类型指示器,指示字符设备。
除此之外-
,c
其他一些文件描述符包括:
d
-> 目录l
-> 符号链接s
->Unix套接字b
-> 块设备p
-> 管道D
-> 门
参考:
答案4
第一列中的第一个字符,即上面的 crw-rw-rw- 中的“c”,告诉知情用户文件的类型,在本例中是字符设备。