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

(二)文件管理-基础命令-mkdir命令的使用

文章目录

  • 1. 命令格式
  • 2. 基本用法
    • 2.1 创建单个目录
    • 2.2 同时创建多个目录
    • 2.3 在指定路径创建目录
  • 3. 高级用法
    • 3.1 -p, --parents
    • 3.2 -m, --mode=MODE
    • 3.3 -v, --verbose
  • 4.注意事项
    • 4.1 目录已存在
    • 4.2 权限不足
    • 4.3 -m 选项的局限
    • 4.4 空格和特殊字符

1. 命令格式

mkdir [OPTION]... DIRECTORY...
  • [OPTION]: 一个或多个选项(可选)。选项通常以连字符 - 开头,用于修改命令的行为
  • DIRECTORY: 一个或多个要创建的目录的名称(必填)。这意味着你可以同时创建多个目录,用空格分隔。

2. 基本用法

2.1 创建单个目录

# 在当前工作目录下创建一个名为 ‘documents’ 的目录
mkdir documents

2.2 同时创建多个目录

# 在当前目录下一次性创建 ‘photos’, ‘music’, ‘videos’ 三个目录
mkdir photos music videos

2.3 在指定路径创建目录

# 在 /home/user/ 路径下创建一个名为 ‘projects’ 的目录
# 注意:执行此命令的前提是 /home/user/ 这个路径必须已经存在
mkdir /home/user/projects

3. 高级用法

3.1 -p, --parents

  • 功能:递归创建目录。即如果路径中的某些父目录不存在,系统会自动创建它们,而不会报错。这是最常用也是最重要的选项。
  • 案例:
# 一次性创建嵌套的目录结构 ‘project/app/src/utils’
# 即使 ‘project’ 和 ‘app’ 等上级目录不存在,也会被自动创建
mkdir -p project/app/src/utils

3.2 -m, --mode=MODE

  • 功能: 在创建目录时直接指定权限模式,而不是使用默认的权限(通常受 umask 影响)。这避免了先创建目录再使用 chmod 修改权限的繁琐步骤。
  • 案例
# 创建一个名为 ‘shared_folder’ 的目录,并直接赋予 777 权限
# (所有用户可读、写、执行)
mkdir -m 777 shared_folder# 创建一个只有所有者有完全权限,其他用户无任何权限的目录
mkdir -m 700 private_folder

3.3 -v, --verbose

  • 功能: 显示详细操作信息。每当创建一个目录时,都会在终端输出一条提示。在脚本或复杂操作中用于确认命令执行结果。
  • 案例
# 使用 -v 选项,会看到每一步的创建反馈
mkdir -pv project/{src,docs,test}/{main,backup}
# 输出可能如下:
# mkdir: created directory 'project'
# mkdir: created directory 'project/src'
# mkdir: created directory 'project/src/main'
# ... (以此类推)

4.注意事项

4.1 目录已存在

如果你试图创建一个已经存在的目录,mkdir 会报错:

mkdir: cannot create directory ‘dir_name’: File exists

使用 -p 选项可以避免这个错误,因为它不会对已存在的目录做任何操作

4.2 权限不足

如果你没有在目标位置(如/usr/local)创建目录的写权限,命令会失败并提示 Permission denied。此时需要使用 sudo 来获取权限(sudo mkdir …)

4.3 -m 选项的局限

mkdir -m 只能设置它正在创建的那一级目录的权限。对于使用 -p 选项同时创建的父目录,它们的权限由系统的 umask 设置决定

4.4 空格和特殊字符

如果目录名包含空格或特殊字符(如 !, $, &),必须用单引号 ‘ ’ 或双引号 “ ” 将其括起来,或者使用反斜杠 \ 进行转义

mkdir "my photos"
mkdir project\ backup
http://www.dtcms.com/a/365998.html

相关文章:

  • C++CSP-J/S必背模板
  • Estimating the Number of Sources: An Efficient Maximization Approach
  • 上下文记忆力媲美Genie3,且问世更早:港大和可灵提出场景一致的交互式视频世界模型!
  • Guidelines for using Adaptive Platform interfaces
  • redisson功能完整指南
  • 【OpenGL】LearnOpenGL学习笔记19 - 几何着色器 Geometry Shader
  • 【机器学习深度学习】RAG边界处理策略
  • Vision Pro图像处理工具全解析
  • ClickHouse使用Docker部署
  • 刷新记录:TapData Oracle 日志同步性能达 80K TPS,重塑实时同步新标准
  • mysy2使用
  • Windows 开发环境这么难配,为什么还有那么多人在用?
  • Axure文件上传高保真交互原型:实现Web端真实上传体验
  • 机器能否真正语言?人工智能NLP面临的“理解鸿沟与突破
  • 深度学习---pytorch卷积神经网络保存和使用最优模型
  • awk相关知识
  • C++完美转发
  • 【FastDDS】Layer DDS之Domain ( 04-DomainParticipantFactory)
  • 专项智能练习(Photoshop软件基础)
  • 智能高效内存分配器测试报告
  • 【CMake】message函数
  • C++对象构造与析构
  • numpy meshgrid 转换成pygimli规则网格
  • cppreference_docs
  • 稳居全球TOP3:鹏辉能源“3+N” 布局,100Ah/50Ah等户储电芯产品筑牢市场优势
  • 【C++】Vector核心实现:类设计到迭代器陷阱
  • MySQL:表的约束上
  • C# 代码中的“熵增”概念
  • 单片机:GPIO、按键、中断、定时器、蜂鸣器
  • 《单链表经典问题全解析:5 大核心题型(移除元素 / 反转 / 找中点 / 合并 / 回文判断)实现与详解》