一、核心功能
mkdir(Make Directory)用于创建目录,支持单层或多层目录的递归创建,是 Linux 系统中最基础的命令之一。
二、常用选项详解
- **-p / --parents**
功能:递归创建父目录,自动忽略已存在的目录。
示例:
bash
mkdir -p project/{src,logs,tmp} # 创建多级目录(如 project/src、project/logs)
适用场景:避免手动逐层创建父目录,适合脚本自动化。 - **-m / --mode=MODE**
功能:设置目录权限(八进制或符号模式),覆盖系统默认权限(umask)。
示例:
bash
mkdir -m 750 private_project # 权限为 drwxr-x—
mkdir -m u=rwx,g=rx,o= secret # 符号模式设置权限
权限优先级:-m 的权限设置优先级高于系统默认权限。 - **-v / --verbose**
功能:显示创建过程的详细信息,便于调试。
示例:
bash
mkdir -vp /var/log/app/{debug,error} # 逐层显示创建信息
输出示例:
markdown
mkdir: created directory ‘/var/log/app’
mkdir: created directory ‘/var/log/app/debug’
适用场景:确认目录创建过程或排查问题。 - **-Z / --context**
功能:设置 SELinux 安全上下文(需系统支持),常用于容器或加固环境。
示例:
bash
mkdir -Z httpd_sys_content_t /var/www/html # 设置安全上下文类型
注意:需 root 权限或启用 SELinux 后生效。 - **–help**
功能:显示命令语法和选项说明。
示例:
bash
mkdir --help - **–version**
功能:显示命令版本信息(GNU coreutils 版本)。
示例:
bash
mkdir --version # 输出类似:mkdir (GNU coreutils) 8.23…
三、组合使用示例
递归创建并设置权限
bash
mkdir -p /var/log/app && chmod -R 755 /var/log/app # 先创建目录,再修改权限
优化版:
bash
mkdir -p -m 755 /var/log/app # 一步完成创建与权限设置
批量创建目录结构
bash
mkdir -p my_project/{src/{main,test},docs,config,logs} # 创建复杂目录树
输出结构:
markdown
my_project/
├── src/
│ ├── main/
│ └── test/
├── docs/
├── config/
└── logs/
结合 Shell 特性
bash
mkdir -p dir{01…10} # 生成 dir01 ~ dir10 的目录序列
四、注意事项
权限问题
若目标路径无写权限,需使用 sudo 提升权限:
bash
sudo mkdir /root/test_dir
路径验证
避免覆盖已有文件:
bash
mkdir -p /path/to/dir || true # 忽略已存在目录的错误
特殊字符处理
路径含空格或符号时需用引号包裹:
bash
mkdir “My Documents”
五、引用说明
选项功能与示例:
SELinux 安全上下文:
如需查看完整手册,可通过 man mkdir 或 mkdir --help 获取详细信息。