linux中mkdir命令不支持-m选项,仅支持-m(小写)参数用于创建目录时直接设置八进制权限(如755),-p用于递归创建多级目录,-v显示创建过程,权限设置受umask及用户权限限制。

Linux 中没有 mkdir -M 这个选项,mkdir 命令不支持 -M 参数。你可能混淆了其他命令(比如 chmod 或某些 shell 扩展),或者误记了参数名。
正确方式:用 mkdir -m 指定八进制权限
mkdir 实际支持的是 -m(小写 m)选项,用于在创建目录时直接设置权限位(即 mode),以八进制形式指定(如 755、700)。
- 语法:
mkdir -m <em>MODE</em> 目录名 -
MODE 是三位或四位八进制数(如
755、2755),不带前缀0o或0x - 若未加
-m,则默认权限受umask影响(通常新建目录为755或775,取决于 umask)
常见用法示例
以下命令均合法且常用:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
mkdir -m 700 private_dir→ 创建仅属主可读写执行的目录 -
mkdir -m 2775 shared_group→ 创建带 setgid 位(2)、组可写(75)的目录,新文件自动继承父目录所属组 -
mkdir -m 755 public_html→ 创建标准 Web 根目录权限
注意权限生效的前提
即使用了 -m,最终权限仍受系统限制:
- 不能赋予比当前用户权限更宽松的“写/执行”给其他用户(例如普通用户无法通过
-m 777让 others 可写,若系统策略禁止) - 如果指定了四位八进制数(如
4755),高位表示特殊权限(setuid/setgid/sticky),需注意其适用场景和安全性 - 该权限只作用于目标目录本身,不递归影响子目录(除非配合
-p创建多级目录,此时每级都按同一-m设置)
对比:先 mkdir 再 chmod 的区别
虽然 mkdir dir && chmod 700 dir 效果类似,但 mkdir -m 是原子操作——目录创建与权限设置一步完成,避免中间状态被其他进程访问到不安全权限。










