「mknod(1)」-

创建字符或者块特殊文件

命令语法格式

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 创建文章