Linux 命令mkdir详细教程

 更新时间:2025年07月02日 14:32:21   作者:hweiyu00  
mkdir命令是 Linux文件操作的基础,熟练掌握-p和-m选项可大幅提升目录管理效率,本文给大家介绍Linux 命令mkdir详细教程,感兴趣的朋友一起看看吧

Linuxmkdir命令详细教程

一、mkdir命令的基本功能

  • mkdir(Make Directory)是 Linux 系统中用于创建新目录(文件夹)的基础命令。
  • 它支持一次性创建单个或多个目录,以及递归创建多层目录结构,是文件系统操作中最常用的命令之一。
  • 资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7

二、mkdir命令的语法格式

mkdir [选项] 目录名 [目录名...]
  • 常用选项
    • -p(–parents):递归创建目录,若父目录不存在则自动创建。
    • -m(–mode):创建目录时指定权限(如 -m 755)。
    • -v(–verbose):显示创建目录的详细过程。
    • --help:显示命令帮助信息。
    • --version:显示命令版本信息。

三、mkdir命令的使用场景与示例

1. 创建单个目录

# 示例1:在当前目录创建名为 "test" 的目录  
mkdir test  
# 示例2:在指定路径创建目录(需确保父目录存在)  
mkdir /home/user/project/data  
  • 输出:无提示,若目录已存在则报错 mkdir: 无法创建目录‘test’:文件已存在

2. 递归创建多层目录(-p 选项)

# 场景:创建目录树 "project/src/main/java",若父目录不存在则自动创建  
mkdir -p project/src/main/java  
# 等价于依次执行:  
# mkdir project  
# mkdir project/src  
# mkdir project/src/main  
# mkdir project/src/main/java  
  • 说明-p 选项避免了手动逐层创建目录的繁琐,尤其适合构建项目结构。

3. 创建目录时指定权限(-m 选项)

# 示例1:创建目录并设置权限为 755(所有者可读可写可执行,其他用户可读可执行)  
mkdir -m 755 logs  
# 示例2:创建目录并设置权限为 644(所有者可读可写,其他用户可读)  
mkdir -m 644 documents  
  • 权限说明:权限值用三位八进制数表示,每位对应 所有者其他用户 的权限(r=4, w=2, x=1)。

4. 一次性创建多个目录

# 示例:同时创建 "src"、"docs"、"test" 三个目录  
mkdir src docs test  
# 结合 -p 递归创建多个目录树  
mkdir -p project/{src,docs,test}/img  
  • 说明:使用大括号 {} 可简化多个目录的创建(需 shell 支持,如 bash)。

5. 显示创建过程(-v 选项)

mkdir -v new_dir  
# 输出:创建目录 "new_dir"  
  • 场景:当批量创建目录时,通过 -v 确认操作是否成功。

四、mkdir命令的权限与安全注意事项

  1. 权限限制

    • 只能在有权限的目录下创建新目录(通常需要对父目录有 w 权限)。
    • 根目录(/)下创建目录需使用 sudo
      sudo mkdir /data/backup  
  2. 默认权限与 umask

    • 新创建目录的默认权限由 umask 决定(默认 022),实际权限为 777 - umask
    • 示例:若 umask022,则默认权限为 755rwxr-xr-x)。
    • 查看当前 umaskumask,临时修改:umask 077(修改后新目录权限为 700)。
  3. 避免同名文件冲突

    • 若目录名与已有文件重名,mkdir 会报错,需先删除文件或重命名。

五、高级用法:结合其他命令使用

  1. touch 配合创建项目文件结构:

    mkdir -p project/{src,docs,test}  
    touch project/src/main.py project/test/test.py  
  2. 在脚本中动态创建目录

    # 脚本示例:根据日期创建备份目录  
    DATE=$(date +%Y%m%d)  
    mkdir -p backups/$DATE  
    cp important.file backups/$DATE/  
  3. 使用通配符创建批量目录

    # 创建以月份命名的目录:month_01, month_02, ..., month_12  
    mkdir month_{01..12}  

六、常见错误与解决方案

错误信息原因解决方案
mkdir: 无法创建目录‘dir’:权限不够无父目录写入权限使用 sudo 或切换到有权限的用户
mkdir: 无法创建目录‘dir’:文件已存在同名文件或目录已存在重命名目录或删除已有文件
mkdir: 无法创建目录‘/path/to/dir’:没有那个文件或目录父目录不存在且未用 -p添加 -p 选项递归创建

七、扩展:创建目录的其他方式

  1. 使用 cp 命令复制目录结构:

    cp -r template_dir new_project  # 复制目录及其内容  
  2. 使用 tree 命令查看目录结构(需先安装):

    sudo apt install tree  # Debian/Ubuntu  
    tree project  # 查看 project 目录的层级结构  

八、总结

mkdir 命令是 Linux 文件操作的基础,熟练掌握 -p-m 选项可大幅提升目录管理效率。在实际使用中,建议:

  • 复杂目录结构优先使用 -p 递归创建;
  • 重要目录通过 -m 显式设置权限;
  • 结合通配符、脚本实现批量操作。
    通过合理使用 mkdir,可高效构建项目目录、管理文件结构,避免因路径或权限问题导致的操作失误。

到此这篇关于Linux 命令mkdir的文章就介绍到这了,更多相关Linux 命令mkdir内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux shell中“.” 和 “./”执行的区别详解

    linux shell中“.” 和 “./”执行的区别详解

    这篇文章主要介绍了linux shell中“.” 和 “./”执行的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Linux下交互式与非交互式修改用户密码的例子

    Linux下交互式与非交互式修改用户密码的例子

    这篇文章主要介绍了Linux下交互式与非交互式修改用户密码的例子,本文重点在是讲解了一个交互式修改用户密码的脚本,需要的朋友可以参考下
    2014-11-11
  • 统计 cpu 内存 使用率的shell脚本代码

    统计 cpu 内存 使用率的shell脚本代码

    统计 cpu 内存使用率的脚本,有需要的朋友可以参考下
    2013-02-02
  • Linux 打包压缩命令详解

    Linux 打包压缩命令详解

    在Linux系统中,有多种命令可以用于打包和压缩文件,这些命令可以帮助用户将多个文件或目录打包成一个文件,并可以选择不同的压缩算法来减小文件大小,下面给大家介绍Linux 打包压缩命令详解,感兴趣的朋友一起看看吧
    2023-09-09
  • linux shell之文件锁

    linux shell之文件锁

    经常在 shell 脚本里要阻止其它进程,比如 msmtp 自带的mail queue 脚本,这个脚本的互斥做法是不正确的,下面介绍下发现的三个通过文件达到互斥的正确做法
    2016-08-08
  • Linux BASH多进程并行处理的方法实现

    Linux BASH多进程并行处理的方法实现

    Linux下BASH多进程并行处理的实现代码,需要的朋友可以参考下
    2013-01-01
  • shell脚本中常见的一些特殊符号和作用详解

    shell脚本中常见的一些特殊符号和作用详解

    这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下
    2014-06-06
  • shell输出重定向的实现

    shell输出重定向的实现

    本文主要介绍了shell输出重定向的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • linux中mysql备份shell脚本代码

    linux中mysql备份shell脚本代码

    在linux中如果想定时备份数据库的脚本我们可以很方便简单的操作,下面我来分享一段mysql定时备份的脚本代码
    2013-02-02
  • shell 数组 ${array[@]} ${array[*]}的使用及区别解析

    shell 数组 ${array[@]} ${array[*]}的使用及区别解析

    shell中用括号来表示数组,数组元素间使用空格隔开,这篇文章主要介绍了shell 数组 ${array[@]} ${array[*]}的使用及区别,需要的朋友可以参考下
    2023-06-06

最新评论