我运行命令:ll /dev/null
并得到这个输出:
crw-rw-rw- 1 root root 1, 3 Feb 19 10:20 /dev/null
Run Code Online (Sandbox Code Playgroud)
我知道d
意味着目录。有人可以解释一下c
特殊标志的含义吗?
pri*_*ntf 13
它是一个基于字符设备的文件 在 Linux 设备中,例如硬件有两种特点:
字符设备 (c) 是以字符形式传输数据的设备,也称为字节或位,例如鼠标、扬声器等。
块设备 (b) 是在数据块中传输数据的设备,例如 USB、硬盘等。
这些类型的文件通常可以在存储设备文件的 /dev 目录中找到,只需键入ls -lah即可查看各种类型。
如果您正在运行一个不错的 Linux 发行版,则可以使用以下命令获取该信息(加上您可能永远不需要的信息):
info ls
Run Code Online (Sandbox Code Playgroud)
其中包含这个小片段:
文件类型是以下字符之一: - 常规文件 b 块特殊文件 c字符特殊文件 C 高性能(“连续数据”)文件 目录 D 门(Solaris 2.5 及更高版本) l 符号链接 M 离线(“迁移”)文件(Cray DMF) n 网络专用文件 (HP-UX) p FIFO(命名管道) P 端口(Solaris 10 及更高版本) 插座 ? 其他一些文件类型
在这种情况下,它是“面向字符的设备”(b 表示面向块的设备)...这就是为什么您的示例中的 /dev/null 在重定向方面如此高效,例如
command 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
其实它不是许可而是“定义标记”