正确写法是 linux mkdir 命令,mkdir 全称 make directory,是 Linux 系统最基础的外部命令,作用就是新建目录文件夹,属于文件管理高频命令,在终端操作写 shell 脚本部署项目的时候经常使用,mkdir 默认只能创建单层目录,如果上级目录不存在,直接创建多级目录会报错,这个就是新手最常见踩坑点,加上 p 参数就可以递归创建多级目录,mkdir 还支持创建的时候直接指定目录权限,使用 m 参数设置 mode 权限,命令严格区分大小写,执行需要对目标父目录拥有写权限,没有权限会提示 Permission denied,它和 rmdir 不一样,rmdir 只能删除空目录,mkdir 专门用来创建目录,不要把两个命令弄混。
基础信息对照表
| 项目 | 说明 |
|---|---|
| 命令名称 | mkdir |
| 全称 | make directory |
| 核心功能 | 创建新目录 |
| 核心参数 | -p 递归创建多级目录 -m 指定权限 |
| 权限要求 | 父目录必须具备写权限 |
基础语法
mkdir 选项 目录路径
常用参数讲解
-p 递归创建,自动把不存在的上层父目录一起创建出来,多级目录必备参数
-m 创建目录同时设置权限模式,比如 755 700
-v 显示创建过程详细信息,调试脚本的时候使用
常用示例
单层目录 mkdir test
多级目录 mkdir -p a/b/c
创建目录同时指定权限 mkdir -m 700 data
批量创建多个同级目录 mkdir dir1 dir2 dir3
标准操作步骤
第一步确认当前所在路径,执行 pwd 查看工作目录
第二步确定要创建的目录是单层还是多层,多层必须加 p 参数
第三步输入 mkdir 加上参数和目标路径,可以写相对路径也可以写绝对路径
第四步执行命令,使用 ls 命令验证目录是否成功生成
第五步如果报错,检查父目录权限,或者目录名称是否已经存在,重复创建不加 p 会提示目录已存在
深度补充要点
如果目录已经存在,不加 p 参数 mkdir 会报错,加上 p 参数之后,目录已经存在不会报错,脚本批量执行的时候这个特性非常实用,不会因为目录提前存在导致脚本中断。
默认新建目录权限受系统 umask 掩码影响,不是固定 755,如果需要固定权限,就必须使用 m 参数手动指定 mode。
目录命名不能包含非法字符,路径层级太深也可能触发系统报错,shell 脚本里面大量使用 mkdir -p 来初始化项目文件夹。
【常见问题】
问题 1 linuxmkdir 命令创建多级目录报错是什么原因
回答 1 linuxmkdir 命令不加 p 参数的时候,上层父目录不存在就会报错,正确写法是 mkdir -p 多级路径,自动递归创建全部父目录。
问题 2 linuxmkdir 命令创建目录默认权限是多少
回答 1 linuxmkdir 命令默认权限受 umask 控制,一般默认是 777 减去 umask 值,如果需要固定权限,使用 m 参数手动指定权限码。
问题 3 linuxmkdir 命令目录已经存在还会报错吗
回答 3 linuxmkdir 命令不加 p 参数,目录已经存在会报错,加上 p 参数之后,目录已经存在不会报错,适合脚本自动初始化。
【免责申明】
本内容基于主流 Linux 发行版 mkdir 通用语法讲解,不同版本参数细节以本机 man 手册为准,内容仅供 linux 基础学习参考。


