创建字符或者块特殊文件
命令语法格式
mknod [OPTION]… NAME TYPE [MAJOR MINOR]
命令描述
命令mknod使用指定的名称name创建FIFO、字符特殊文件、块特殊文件。
与上面的“特殊文件类型”不同,“特殊文件”是一个术语,在Unix上具有技术含义:可以生成或接收数据的东西。通常它对应于物理硬件,例如打印机、磁盘。这些文件通常在系统配置时创建。mknod命令用于创建此类型的文件。这种设备可以一次读取一个字符,或一次读取一个“块”(多个字符),因此我们说有“块特殊文件”和“字符特殊文件”。
命令行中参数NAME后面的参数TYPE指定了要创建的文件的类型:
- “p”:用于创建FIFO文件;
- “b”:用于块特殊文件;
- “c”:用于字符特殊文件;
在创建块特殊文件和字符特殊文件时,必须在文件类型TYPE之后给出主设备号MAJOR和次设备号MINOR。如果主次设备编号以’0x’或’0X’开始,则被解释为十六进制;如果它以’0’开始,为八进制;否则,被解释为十进制。
命令支持的选项及含义
需要提供给长选项的参数也必须提供给相应的短选项。
–help
显示帮助并退出。
–version
显示版本信息。
-m, –mode=MODE
将创建的FIFO的模式位设置为MODE,MODE的格式与chmod的格式是相同的,并且权限的出发点为’a=rw’(允许每个人读写)。MODE应该只指定文件权限位。参阅文件权限。
-Z, –context[=CTX]
如果没有指定的上下文CTX,请根据目标文件的系统默认类型调整SELinux安全上下文,类似于restorecon命令。
具有指定的特定上下文CTX的长选项将仅为新创建的文件设置上下文。使用指定的上下文,但如果同时禁用SELinux和SMACK,则会发出警告。
注意事项
由于Shell别名和内置mknod函数的存在,当直接在命令行中执行mknoe命令时,执行的可能不是本文描述的mknod命令。可以通过env调用它(即env mknod …),以此避免Shell的干扰,或者使用绝对路径来执行env命令。
相关手册
mknod(2)
查看在线手册:http://www.gnu.org/software/coreutils/mknod
查看info手册:info ‘(coreutils) mknod invocation’
参考文献
- man 1 mknod, version GNU coreutils 8.28
更新日志
- 07/01/2018 创建文章