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

Linux基本指令篇 —— mkdir指令

   mkdir是Linux和Unix-like系统中用于创建目录的基本命令,全称为"make directory"。下面将详细介绍这个命令的用法、选项和实际应用。

目录

一、基本语法

二、基本用法

创建单个目录

创建多个目录

三、常用选项

-p 或 --parents

-m 或 --mode

-v 或 --verbose

四、高级用法

创建带有空格或特殊字符的目录

结合大括号扩展创建多个相似目录

在脚本中使用mkdir

五、实际应用示例

创建项目目录结构

创建带权限的目录

创建多层目录并显示详细信息

六、注意事项

默认情况下,如果目录已存在,mkdir会报错

普通用户只能在有写权限的目录中创建子目录

使用-p选项时,如果路径中某些组件已存在且不是目录,会报错

目录名区分大小写

七、查看帮助


一、基本语法

mkdir [选项] 目录名...

二、基本用法

  1. 创建单个目录

    mkdir dirname

    这会在当前工作目录下创建一个名为dirname的新目录。

  2. 创建多个目录

    mkdir dir1 dir2 dir3

    这会同时创建三个目录:dir1、dir2和dir3。


三、常用选项

  1. -p 或 --parents

    • 递归创建目录,即如果上级目录不存在则一并创建

    • 不会报错如果目录已存在

      mkdir -p path/to/new/directory

            这个命令会创建完整的目录路径(注意:此处的路径也可以是相对路径。),即使中间的pathto目录不存在。(我们可以使用ls 命令的 -R 选项(递归列出目录内容)用于 递归显示目录及其所有子目录中的文件,即不仅显示当前目录下的文件,还会深入遍历所有子目录并列出它们的内容。)

  2. -m 或 --mode

    • 设置目录的权限模式(类似chmod)

      mkdir -m 755 restricted_dir

    这会创建一个权限为755(rwxr-xr-x)的目录(第一列数据表示为文件类型和相关权限,关于权限相关知识会在后面讲解)。

  3. -v 或 --verbose

    • 显示每个创建的目录信息

      mkdir -v newdir

      输出示例:


四、高级用法

  1. 创建带有空格或特殊字符的目录

    mkdir "my directory"

    或者使用转义字符:

    mkdir my\ directory

  2. 结合大括号扩展创建多个相似目录

    mkdir dir_{1..5}

    这会创建dir_1, dir_2, ..., dir_5五个目录。

  3. 在脚本中使用mkdir

    if [ ! -d "./path/to/dir" ]; thenmkdir -p "./path/to/dir"
    fi

    这个脚本片段会先检查目录是否存在,若存在就什么都不做,而不存在才创建。因为之前有一个path目录,我们就进去观察新建目录的变化。


五、实际应用示例

  1. 创建项目目录结构

    mkdir -p project/{src,doc,bin,lib,test}

    这会创建一个project目录,并在其中创建src, doc, bin, lib, test五个子目录。

  2. 创建带权限的目录

    mkdir -m 700 private_dir

    创建一个只有所有者有完全权限的目录。

  3. 创建多层目录并显示详细信息

    mkdir -pv backup/2023/{jan,feb,mar}/images

    这会创建完整的目录结构并显示每个创建步骤。如果看不懂花括号的意思,下面解释一下:


六、注意事项

  1. 默认情况下,如果目录已存在,mkdir会报错

  2. 普通用户只能在有写权限的目录中创建子目录

  3. 使用-p选项时,如果路径中某些组件已存在且不是目录,会报错

  4. 目录名区分大小写


七、查看帮助

要了解更多关于mkdir的信息,可以使用:

man mkdir

使用该指令后,则进入使用手册: 

 

mkdir --help

http://www.lryc.cn/news/572471.html

相关文章:

  • MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗
  • 分布变化的模仿学习算法
  • 257. 二叉树的所有路径(js)
  • 【数据治理】要点整理-信息技术服务治理第5部分-数据治理规范-GBT+34960.5-2018
  • C#设计模式之AbstractFactory_抽象工厂_对象创建新模式-练习制作PANL(一)
  • C# winform教程(二)----GroupBox
  • vscode设置代码字体
  • Web 应用防火墙(WAF)工作原理、防护策略与部署模式深度剖析
  • css语法中的选择器与属性详解:嵌套声明、集体声明、全局声明、混合选择器
  • 什么是池化
  • 啊啊啊啊啊啊啊啊code
  • 打卡Day55
  • C++实现手写strlen函数
  • LeeCode2294划分数组使最大值为K
  • SQL分片工具类
  • C#上位机通过WebApi访问WinCC
  • 图像特征检测算法ORB
  • 目标检测之YOLOV11谈谈OBB
  • 基于Uniapp+PHP的教育培训系统开发指南:网校源码实战剖析
  • 【机械视觉】Halcon—【十五、一维码(条形码)和二维码识别】
  • SpringBoot扩展——发送邮件!
  • Java求职者面试指南:Spring, Spring Boot, Spring MVC, MyBatis技术点深度解析
  • Windows 10开始菜单优化方案,如何实现Win7风格开始菜单的还原
  • 火山引擎TTS使用体验
  • 类与对象(中)(详解)
  • 多卡解决报错torch.distributed.elastic.multiprocessing.errors.ChildFailedError的问题
  • API 接口:程序世界的通用语言与交互基因
  • 【音视频】PJSIP库——示例简介、C++类说明
  • 深度学习——激活函数
  • # python正则表达式——实战学习+理论