Linux mkdir
命令详细教程
一、mkdir
命令的基本功能
mkdir
(Make Directory)是 Linux 系统中用于创建新目录(文件夹)的基础命令。- 它支持一次性创建单个或多个目录,以及递归创建多层目录结构,是文件系统操作中最常用的命令之一。
- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
二、mkdir
命令的语法格式
mkdir [选项] 目录名 [目录名...]
- 常用选项:
-p
(–parents):递归创建目录,若父目录不存在则自动创建。-m
(–mode):创建目录时指定权限(如-m 755
)。-v
(–verbose):显示创建目录的详细过程。--help
:显示命令帮助信息。--version
:显示命令版本信息。
三、mkdir
命令的使用场景与示例
1. 创建单个目录
# 示例1:在当前目录创建名为 "test" 的目录
mkdir test # 示例2:在指定路径创建目录(需确保父目录存在)
mkdir /home/user/project/data
- 输出:无提示,若目录已存在则报错
mkdir: 无法创建目录‘test’:文件已存在
。
2. 递归创建多层目录(-p
选项)
# 场景:创建目录树 "project/src/main/java",若父目录不存在则自动创建
mkdir -p project/src/main/java # 等价于依次执行:
# mkdir project
# mkdir project/src
# mkdir project/src/main
# mkdir project/src/main/java
- 说明:
-p
选项避免了手动逐层创建目录的繁琐,尤其适合构建项目结构。
3. 创建目录时指定权限(-m
选项)
# 示例1:创建目录并设置权限为 755(所有者可读可写可执行,其他用户可读可执行)
mkdir -m 755 logs # 示例2:创建目录并设置权限为 644(所有者可读可写,其他用户可读)
mkdir -m 644 documents
- 权限说明:权限值用三位八进制数表示,每位对应
所有者
、组
、其他用户
的权限(r=4
,w=2
,x=1
)。
4. 一次性创建多个目录
# 示例:同时创建 "src"、"docs"、"test" 三个目录
mkdir src docs test # 结合 -p 递归创建多个目录树
mkdir -p project/{src,docs,test}/img
- 说明:使用大括号
{}
可简化多个目录的创建(需 shell 支持,如 bash)。
5. 显示创建过程(-v
选项)
mkdir -v new_dir
# 输出:创建目录 "new_dir"
- 场景:当批量创建目录时,通过
-v
确认操作是否成功。
四、mkdir
命令的权限与安全注意事项
-
权限限制:
- 只能在有权限的目录下创建新目录(通常需要对父目录有
w
权限)。 - 根目录(
/
)下创建目录需使用sudo
:sudo mkdir /data/backup
- 只能在有权限的目录下创建新目录(通常需要对父目录有
-
默认权限与 umask:
- 新创建目录的默认权限由
umask
决定(默认022
),实际权限为777 - umask
。 - 示例:若
umask
为022
,则默认权限为755
(rwxr-xr-x
)。 - 查看当前
umask
:umask
,临时修改:umask 077
(修改后新目录权限为700
)。
- 新创建目录的默认权限由
-
避免同名文件冲突:
- 若目录名与已有文件重名,
mkdir
会报错,需先删除文件或重命名。
- 若目录名与已有文件重名,
五、高级用法:结合其他命令使用
-
与
touch
配合创建项目文件结构:mkdir -p project/{src,docs,test} touch project/src/main.py project/test/test.py
-
在脚本中动态创建目录:
# 脚本示例:根据日期创建备份目录 DATE=$(date +%Y%m%d) mkdir -p backups/$DATE cp important.file backups/$DATE/
-
使用通配符创建批量目录:
# 创建以月份命名的目录:month_01, month_02, ..., month_12 mkdir month_{01..12}
六、常见错误与解决方案
错误信息 | 原因 | 解决方案 |
---|---|---|
mkdir: 无法创建目录‘dir’:权限不够 | 无父目录写入权限 | 使用 sudo 或切换到有权限的用户 |
mkdir: 无法创建目录‘dir’:文件已存在 | 同名文件或目录已存在 | 重命名目录或删除已有文件 |
mkdir: 无法创建目录‘/path/to/dir’:没有那个文件或目录 | 父目录不存在且未用 -p | 添加 -p 选项递归创建 |
七、扩展:创建目录的其他方式
-
使用
cp
命令复制目录结构:cp -r template_dir new_project # 复制目录及其内容
-
使用
tree
命令查看目录结构(需先安装):sudo apt install tree # Debian/Ubuntu tree project # 查看 project 目录的层级结构
八、总结
mkdir
命令是 Linux 文件操作的基础,熟练掌握 -p
和 -m
选项可大幅提升目录管理效率。在实际使用中,建议:
- 复杂目录结构优先使用
-p
递归创建; - 重要目录通过
-m
显式设置权限; - 结合通配符、脚本实现批量操作。
通过合理使用mkdir
,可高效构建项目目录、管理文件结构,避免因路径或权限问题导致的操作失误。