mkdir -p 是最直接可靠的方式,可自动创建完整路径且不报错;支持大括号批量建同级目录,但含空格或中文路径需逐行处理。

用 mkdir -p 是最直接、最可靠的方式。它不依赖上级目录是否存在,自动补全整条路径,已存在的部分直接跳过,不会报错也不会覆盖。
基础用法:一条命令建完整路径
比如要创建 project/src/main/java/com/example/app,只需:
mkdir -p project/src/main/java/com/example/app
所有中间目录(project、src、main…)都会被自动创建,无需手动逐层执行。
批量建同级子目录:用大括号展开
适合命名规则统一、不含空格和特殊字符的场景:
-
mkdir -p deploy/{bin,etc,logs,shared}→ 创建部署标准结构 -
mkdir -p config/{dev,staging,prod}→ 快速建多环境配置目录 -
mkdir -p logs/{2024..2026}/{01..12}→ 按年月生成日志目录(支持范围展开)
注意:大括号内不能有空格,{dev, staging} 会生成带前导空格的异常目录名。
安全处理含空格或中文的路径
遇到 user data、日志备份、config (backup) 这类路径,大括号展开不可靠,必须逐行处理:
- 先准备
dirs.txt,每行一个完整路径(可带引号): user data/config日志备份/2026-10- 再执行:
while IFS= read -r dir; do mkdir -p "$dir"; done
IFS= 防止首尾空格被截断,-r 避免反斜杠误解析——这两个参数缺一不可。
显式设定权限,避免 umask 干扰
不加 -m 时,新建目录权限由当前 shell 的 umask 决定,CI/CD 和本地常不一致:
-
mkdir -p -m 755 deploy/{bin,etc}→ 所有新建目录为rwxr-xr-x -
mkdir -p -m 700 .cache/private→ 仅属主可读写执行
注意:-m 只影响目录,对文件无效;若需建文件,得配合 touch。











