首页 > 精选要闻 > 宝藏问答 >

问 linuxmkdir 命令详解 mkdir 创建目录完整教程

2026-11-08 22:27:02
最佳答案

答

linux mkdir 是 Linux 核心基础命令,全称 make directory,作用就是新建文件夹目录,属于 POSIX 标准命令,所有主流发行版默认自带,写 shell 脚本 运维部署 项目初始化都会高频使用,最核心参数就是 - p,这个参数可以递归创建多级目录,同时父目录不存在的时候自动补全,目录已经存在也不会报错,是日常使用最多的功能,另外还可以在创建目录的时候直接设置权限 mode,也就是 - m 参数,新手经常踩坑,比如不加 - p 创建多层目录会报错,还有创建目录之后默认权限受 umask 影响,很多人不清楚这点,学习 mkdir 需要掌握基础语法 常用参数 实操案例 权限规则 常见报错排查。

基础语法

命令格式

mkdir [参数] 目录名称

基础示例

mkdir test

含义 在当前工作目录下,新建名为 test 的目录

常用参数对照表

参数功能说明使用场景
-p递归创建多级目录,父目录不存在自动创建,目录已存在不报错一次性创建多层嵌套文件夹
-m创建目录同时指定权限模式,八进制数字新建目录直接设置自定义权限
-vverbose,输出创建目录的详细提示信息脚本调试,确认目录是否成功创建
-Z设置 SELinux 安全上下文开启 SELinux 的服务器环境

实操分步示例

基础单目录创建

mkdir data

当前目录生成 data 文件夹

递归创建多级目录 -p

mkdir -p /opt/project/logs/2026

如果 /opt/project 以及 logs 都不存在,会自动全部创建出来

如果不加 - p,中间父目录缺失,直接报错 No such file or directory

创建多个同级目录

mkdir dir1 dir2 dir3

一条命令同时创建多个平级目录,不用分开多次执行

创建目录同时指定权限 -m

mkdir -m 755 backup

新建 backup 目录,权限直接设置成 755,不受当前 umask 默认值影响

带详细输出 -v

mkdir -v newdir

终端会打印提示,类似 mkdir created directory 'newdir',适合脚本日志记录

权限重点知识点

不加 - m 的时候,新建目录默认权限 = 777 减去当前 shell 的 umask 值

举例 umask 是 022,那么新建目录默认权限就是 755

如果想要强制固定权限,必须使用 - m 参数,这个是 mkdir 非常重要的特性,很多初学者会混淆文件和目录默认权限,文件默认是 666 减 umask,目录是 777 减 umask

常见报错清单

1 No such file or directory 父目录不存在,没有加 - p 参数

2 File exists 目录已经存在,没有加 - p,mkdir 默认不允许重复创建同名目录

3 Permission denied 当前用户没有在目标路径写入权限,需要切换 root 或者修改父目录权限

4 路径错误 使用相对路径和绝对路径混淆,建议复杂路径优先写绝对路径

进阶使用要点

mkdir 支持通配符配合 shell 扩展,还可以结合脚本批量生成目录,比如循环批量创建日期目录,在日志归档 备份脚本里面非常常用,mkdir 是 shell 脚本初始化项目目录结构的首选命令,属于必须熟练掌握的基础命令。

【常见问题】

问题 1 linuxmkdir 也就是 mkdir 的 - p 参数作用是什么

回答 1 linuxmkdir 也就是 mkdir 的 - p 参数可以递归创建多级目录,父目录不存在会自动创建,并且目录已经存在的时候不会报错,是 linuxmkdir 最常用参数。

问题 2 linuxmkdir 创建目录默认权限由什么决定

回答 2 linuxmkdir 也就是 mkdir 如果不使用 - m 参数,新建目录默认权限由当前 shell 的 umask 决定,使用 - m 参数可以在 linuxmkdir 创建目录的时候直接指定八进制权限。

问题 3 linuxmkdir 创建同名目录会报错吗

回答 3 linuxmkdir 也就是 mkdir 默认情况下,如果目标目录已经存在会报 File exists 错误,加上 - p 参数之后,linuxmkdir 就不会因为目录已经存在而报错。

问题 4 linuxmkdir 能不能一条命令创建多个同级目录

回答 4 linuxmkdir 也就是 mkdir 支持一条命令后面跟多个目录名称,可以一次性创建多个同级目录,不需要重复执行 linuxmkdir 命令。

【免责申明】

本文 linuxmkdir 也就是 mkdir 命令详解基于 GNU coreutils 版本编写,不同系统版本参数细节可能有微小差异,执行 man mkdir 可以查看本机官方手册,内容仅用于 Linux 基础运维学习参考。