Linux文件权限中`crw-rw-rw-`中的`c`是什么意思?

Linux文件权限中`crw-rw-rw-`中的`c`是什么意思?

我运行命令:ll /dev/null并得到以下输出:

crw-rw-rw- 1 root root 1, 3 Feb 19 10:20 /dev/null

我知道d意思是目录。有人可以解释一下c特殊标志的含义吗?

答案1

它是基于字符设备的文件 在 Linux 中,硬件等设备有两种特征:

  • 字符设备 (c) 以字符(也称为字节或位)传输数据的设备,例如鼠标、扬声器等。

  • 块设备 (b) 以数据块形式传输数据的设备,例如 USB、硬盘等。

这些类型的文件通常可以在 /dev 目录中找到,该目录是存储设备文件的位置,只需键入LS拉你可以看到各种类型。

如果您正在运行一个不错的 Linux 发行版,则可以使用以下命令获取该信息(以及超出您可能需要的信息):

info ls

其中包含这个小片段:


文件类型是以下字符之一:
    - 常规文件
    b 块特殊文件
    c字符特殊文件
    C 高性能(“连续数据”)文件
    d目录
    D 门(Solaris 2.5 及更高版本)
    l 符号链接
    M 离线(“迁移”)文件 (Cray DMF)
    n 网络特殊文件(HP-UX)
    p FIFO(命名管道)
    P 端口(Solaris 10 及更高版本)
    插座
    ?其他一些文件类型

答案2

在这种情况下,它是“面向字符的设备”(b 表示面向块的设备)...这就是为什么您的示例中的 /dev/null 在重定向方面如此高效,例如

command 2> /dev/null

其实它不是许可而是“定义标记”

相关内容