{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-06-18 15:27:37","updateBy":"admin","updateTime":"2024-06-18 15:27:37","remark":null,"id":80,"articleTitle":"每天一个Linux命令（四）mkdir","articleUrl":"linux_mkdir","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"mkdir是 Linux/Unix 系统中用于创建目录的命令（Make Directory），支持递归创建、设置权限、批量创建等功能，是文件管理中的基础命令之一。","articleContent":"`mkdir` 是 Linux/Unix 系统中用于**创建目录**的命令（Make Directory），支持递归创建、设置权限、批量创建等功能，是文件管理中的基础命令之一。\n\n---\n\n## 语法\n\n```bash\nmkdir [选项] 目录名...\n```\n\n---\n\n## 常用选项\n\n| 选项        | 说明                           |\n| ----------- | ------------------------------ |\n| `-p`        | 递归创建目录（自动创建父目录） |\n| `-m`        | 设置目录权限（需指定权限模式） |\n| `-v`        | 显示详细操作过程（Verbose）    |\n| `--parents` | 同 `-p`，递归创建目录          |\n| `--mode`    | 同 `-m`，设置目录权限          |\n\n---\n\n## 使用示例\n\n### 1. 创建单个目录\n\n```bash\nmkdir new_folder\n```\n\n验证结果：\n\n```bash\nls -ld new_folder  # 查看目录信息\n```\n\n---\n\n### 2. 递归创建多级目录\n\n```bash\nmkdir -p project/{src,doc,log}\n```\n\n目录结构：\n\n```\nproject/\n├── src/\n├── doc/\n└── log/\n```\n\n---\n\n### 3. 创建目录并设置权限\n\n```bash\nmkdir -m 750 secure_dir\n```\n\n验证权限：\n\n```bash\nls -ld secure_dir  # 输出 drwxr-x--- 2 user group\n```\n\n---\n\n### 4. 批量创建目录\n\n```bash\nmkdir dir1 dir2 dir3\n```\n\n结果：\n\n```\ndir1/  dir2/  dir3/\n```\n\n---\n\n### 5. 显示详细创建过程\n\n```bash\nmkdir -pv logs/{2023,2024}/{jan,feb,mar}\n```\n\n输出示例：\n\n```\nmkdir: created directory 'logs'\nmkdir: created directory 'logs/2023'\nmkdir: created directory 'logs/2023/jan'\nmkdir: created directory 'logs/2023/feb'\n...\n```\n\n---\n\n### 6. 结合变量创建目录\n\n```bash\nYEAR=$(date +%Y)\nmkdir -p \"archive/$YEAR\"\n```\n\n结果：创建以当前年份命名的目录，如 `archive/2024/`\n\n---\n\n### 7. 处理带空格的目录名\n\n```bash\nmkdir \"My Documents\"  # 引号包裹\nmkdir Project\\ Files  # 或使用转义符号\n```\n\n---\n\n## 注意事项\n\n1. **目录存在性**：若目标目录已存在，会报错 `File exists`\n2. **权限限制**：需对父目录有写权限（`w` 权限）\n3. **递归创建**：`-p` 选项可避免因父目录不存在而报错\n4. **权限模式**：`-m` 选项需指定八进制权限值（如 `750`）\n\n---\n\n## 常见错误处理\n\n### 错误示例：目录已存在\n\n```bash\nmkdir existing_folder\n# 输出：mkdir: cannot create directory 'existing_folder': File exists\n```\n\n### 错误示例：权限不足\n\n```bash\nmkdir /root/new_folder\n# 输出：mkdir: cannot create directory '/root/new_folder': Permission denied\n```\n\n---\n\n## 进阶技巧\n\n### 1. 使用大括号扩展批量创建\n\n```bash\nmkdir -p images/{cats,dogs}/{small,large}\n```\n\n目录结构：\n\n```\nimages/\n├── cats/\n│   ├── small/\n│   └── large/\n└── dogs/\n    ├── small/\n    └── large/\n```\n\n---\n\n### 2. 结合 `find` 创建缺失目录\n\n```bash\nfind . -type d -empty -exec mkdir -p {}/new_subdir \\;\n```\n\n说明：为所有空目录创建子目录 `new_subdir`\n\n---\n\n### 3. 创建带时间戳的目录\n\n```bash\nmkdir -p \"backup/$(date +%Y%m%d_%H%M%S)\"\n```\n\n结果：创建如 `backup/20240110_153045/` 的目录\n\n---\n\n### 4. 使用 `trap` 确保目录创建\n\n```bash\ntrap 'rm -rf temp_dir' EXIT\nmkdir -p temp_dir\n# 脚本退出时会自动清理 temp_dir\n```\n\n---\n\n### 5. 创建符号链接目录\n\n```bash\nmkdir -p /data/logs\nln -s /data/logs /var/log/myapp\n```\n\n结果：`/var/log/myapp` 指向 `/data/logs`","categoryId":1,"viewCount":54,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}