mkdir 命令文档 - Linux 目录创建命令详解
1. 命令简介
mkdir(make directory)命令是 Linux/Unix 系统中用于创建新目录(文件夹)的核心工具。它允许用户在指定的路径下创建一个或多个目录,并可同时设置目录的访问权限。该命令是文件系统管理和日常操作中最基础且频繁使用的命令之一。
2. 语法格式
基本语法格式如下:
bash
运行
mkdir [选项]... 目录名...格式说明:
[选项]:用于指定命令行为的可选参数,可以同时使用多个。目录名:要创建的一个或多个目录的名称。可以指定绝对路径(如/home/user/docs)或相对路径(如./project/src)。多个目录名之间用空格分隔。
3. 常用选项及说明
表格
| 短选项 | 长选项 | 说明 |
|---|---|---|
| -p | --parents | 递归创建目录。如果目标目录的上级目录不存在,此选项会一并创建所有必需的父目录,而不会报错。 |
| -m | --mode=MODE | 设置目录权限。在创建目录的同时,直接指定其访问权限,而不是使用默认的 umask 设置。 |
| -v | --verbose | 显示详细信息。为每个创建的目录输出一条提示信息,便于确认操作结果。 |
| -Z | 设置 SELinux 安全上下文。在启用了 SELinux 的系统上,为新创建的目录设置默认的安全上下文。 | |
| --help | 显示命令的帮助信息。 | |
| --version | 显示命令的版本信息。 |
4. 示例用法
示例 1:创建单个目录
在当前工作目录下创建一个名为new_folder的目录。
bash
运行
mkdir new_folder示例 2:创建带路径的目录
在/home/user路径下创建一个名为projects的目录。
bash
运行
mkdir /home/user/projects示例 3:使用 -p 选项递归创建目录(最常用)
创建嵌套目录结构a/b/c。即使a和b目录不存在,也会被自动创建。
bash
运行
mkdir -p a/b/c示例 4:创建目录并指定权限
创建一个名为private_dir的目录,并将其权限设置为 750(所有者可读、写、执行,所属组可读、执行,其他用户无权限)。
bash
运行
mkdir -m 750 private_dir权限数字说明:
- 7 (4+2+1):所有者拥有读 (r)、写 (w)、执行 (x) 权限。
- 5 (4+1):所属组拥有读 (r)、执行 (x) 权限。
- 0:其他用户无任何权限。
示例 5:同时创建多个目录
在当前目录下一次性创建dir1、dir2、dir3三个目录。
bash
运行
mkdir dir1 dir2 dir3示例 6:结合 -p 和 -v 选项
递归创建目录并显示创建过程。
bash
运行
mkdir -pv d1/d2/d3输出可能类似于:
plaintext
mkdir: created directory ‘d1’ mkdir: created directory ‘d1/d2’ mkdir: created directory ‘d1/d2/d3’示例 7:在脚本中安全创建目录
在脚本中,通常结合-p选项来确保目录存在,无论其父目录是否存在。
bash
运行
# 确保日志目录存在 LOG_DIR="/var/log/myapp" mkdir -p "$LOG_DIR"5. 注意事项
- 默认权限:如果不使用
-m选项,新建目录的权限由系统的umask值决定。通常默认权限为 755(所有者全权,组和其他人可读和执行)或 775。 - 目录已存在:如果尝试创建的目录已经存在,mkdir 命令会报错 “File exists”。使用
-p选项可以避免此错误,因为它不会对已存在的目录进行任何操作。 - 空格和特殊字符:如果目录名包含空格或特殊字符(如
!,$,&),必须用引号将目录名括起来。bash
运行
mkdir "my project files" mkdir 'test$dir' - 权限不足:在需要 root 权限的路径(如
/usr/local)下创建目录时,普通用户需要使用sudo。bash
运行
sudo mkdir /usr/local/myapp - -p 选项的妙用:
mkdir -p是编写可移植脚本和确保目录结构存在的黄金标准,强烈推荐在需要创建不确定是否已存在的目录路径时使用。
获取更多Linux学习资料请关注“阿成学长工具包”公众号,对话框中输入2647获取
