当前位置: 首页 > news >正文

Linux命令-mkdir(创建目录)

mkdir命令用于在 Linux 系统中创建新的目录(文件夹)。它是文件操作中最基础、最常用的命令之一。

📖 基本语法

mkdir[选项]目录名...

🎯 常用选项

选项说明
-p,--parents递归创建所需的所有父目录。如果目录已存在,不会报错。
-m,--mode=MODE设置目录的权限模式(类似chmod),例如-m 755
-v,--verbose显示创建的每个目录的详细信息。

💡 核心用法示例

  1. 创建单个目录

    mkdirnew_folder
  2. 一次性创建多个目录

    mkdirdir1 dir2 dir3
  3. 创建嵌套的目录结构(使用-p选项)

    mkdir-pproject/{src,doc,test}/internal

    这条命令会创建以下结构:

    project/ ├── src/ │ └── internal/ ├── doc/ │ └── internal/ └── test/ └── internal/
  4. 创建目录并指定权限

    mkdir-m750private_dir

    创建所有者可读/写/执行,组用户可读/执行,其他用户无权限的目录。

  5. 显示创建过程(详细模式)

    mkdir-pva/b/c

    输出:

    mkdir: created directory 'a' mkdir: created directory 'a/b' mkdir: created directory 'a/b/c'

🔧 实用技巧与场景

  1. 与变量结合创建带时间戳的目录

    mkdir"backup_$(date+%Y%m%d)"# 创建类似 backup_20240323 的目录
  2. 在脚本中安全创建目录

    if[!-d"/target/path"];thenmkdir-p"/target/path"fi# -d 检查目录是否存在,-p 确保父目录存在
  3. 创建临时工作目录

    mkdir-p/tmp/myapp/{cache,logs,uploads}

⚠️ 常见错误与解决

  1. 目录已存在

    mkdirexisting_dir# 报错:mkdir: cannot create directory ‘existing_dir’: File exists

    解决:使用-p选项可避免此错误。

  2. 权限不足

    mkdir/root/mydir# 报错:mkdir: cannot create directory ‘/root/mydir’: Permission denied

    解决:使用sudo或以有权限的用户操作。

  3. 路径中包含特殊字符

    mkdir"my dir"# 目录名包含空格mkdir"test&demo"# 目录名包含&符号

    最佳实践:用引号包裹目录名,或使用转义字符my\ dir

📌 进阶用法

  1. 使用大括号扩展创建复杂结构

    mkdir-puser{1..5}/{images,notes}

    创建 user1 到 user5 目录,每个目录下包含 images 和 notes 子目录。

  2. 结合管道从文件读取目录列表

    catdir_list.txt|xargsmkdir-p# dir_list.txt 每行包含一个目录路径

🆚 与其他命令的配合

  • 创建目录并立即进入

    mkdirnew_project&&cdnew_project
  • 创建目录并设置所有权

    sudomkdir-p/shared/data&&sudochownuser:group /shared/data

mkdir是 Linux 文件管理的基础,掌握其-p递归创建选项能极大提升工作效率。在脚本编写和日常操作中,养成使用-p的习惯可以避免许多“目录不存在”的错误。

http://www.jsqmd.com/news/526768/

相关文章:

  • 【第四周】论文精读:DARP: Difference-Aware Retrieval Policies for Imitation Learning
  • ollama部署embeddinggemma-300m:开源可部署+多语言+低资源——三大优势详解
  • 揭秘:如何将安卓电视盒变身高性能服务器?Armbian系统版本识别与升级全攻略
  • PictureSelector多语言架构设计与技术实现:全球化Android图片选择器解决方案
  • 如何在Java中按列遍历二维数组
  • YOLO模型在边缘AI领域的全场景落地:从ADAS到工业、农业、矿业的多领域实践
  • Gemma-3-12b-it本地AI策展助手:艺术作品图+风格流派自动归类
  • GPT-OSS-20B实战体验:快速部署教程与核心功能测评
  • SEO_快速诊断网站SEO问题的实用工具与方法盘点
  • QMI8658A六轴传感器校准避坑指南:从硬件摆放到数据可视化
  • SEO_详解SEO优化的基本原理与核心步骤(415 )
  • Vue 缓存机制
  • agent 杂谈
  • 【MCP协议性能突围白皮书】:20年架构师实测17项关键指标,REST API已落后3.8倍?
  • 低代码平台集成AI能力:在Dify中快速调用BERT文本分割模型
  • CentOS 6.4开机卡在图形界面?3种方法快速切换到命令行模式
  • 亲测推荐:黑丝空姐-造相Z-Turbo,小白友好的AI绘图神器
  • WiFlyInterface嵌入式Wi-Fi模块Socket封装库详解
  • Fish-Speech 1.5实战分享:用它为我的PPT添加语音解说
  • 计算机毕业设计springboot基于的就业推荐系统 基于Spring Boot框架的求职招聘智能撮合与人才推荐系统开发 Spring Boot驱动的个性化职业发展与岗位精准匹配系统构建
  • OpenClaw混合部署:Qwen3-VL:30B本地+云端算力动态调配
  • 探索基于西门子S7 - 200 PLC和MCGS组态画面的全自动洗衣机控制系统
  • AI 时代必懂的基础概念(扫盲篇)
  • 74HC590硬件计数器原理与Arduino工程实践
  • 科技成果转化效率低,如何有效提升?
  • python基于微信小程序的物流仓储管理系统设计与实现
  • 老旧系统Python支持解决方案:让Windows 7焕发新活力
  • 前端密码安全实践:MD5加盐加密的深度解析与应用
  • 4步搞定黑苹果系统:OpCore-Simplify让你的macOS安装变得简单
  • STM32H743VIT6上RT-Thread网络驱动踩坑记:从CubeMX配置到LAN8720A驱动移植的完整流程