Linux:目录创建命令mkdir功能及用法详解

mkdir是Make Directory的缩写,该命令在 Linux 中用于创建目录(单层或多层),在Linux中很常用,可以说是基础性命令。该命令支持:1)创建单层或多层目录2)直接指定目录权限。本文详细介绍了mkdir命令的各种用法。

mkdir是Make Directory的缩写,该命令是 Linux 中用于创建目录(单层或多层)的核心命令,在Linux中很常用,也可以说是基础性命令。
该命令能够:1)支持创建单层或多层目录:能自动创建缺失的父目录(-p 选项)。2)设置权限:使用-m 选项直接指定目录权限。3)冗余输出:借助-v 选项显示创建过程。

一、使用语法

mkdir [选项] 目录名...

支持多目录创建,目录名可以是多个:可同时创建多个目录(例如 mkdir dir1 dir2)。
脚本化操作:常与 Shell 循环、变量结合使用。

欢迎关注工 众 号:ItBeeCoder,查看更多Linux、Java、MySQL等的技术文章,发送“ds”获取 deepseek 资 料

二、常用的选项参数

 -p:该选项支持递归创建父目录(自动忽略已存在的目录),如 /a/b/c 
 -m :设置目录权限(八进制或符号模式),创建需特定权限的目录(如日志目录) 
 -v:显示创建过程(Verbose 模式),调试或查看操作细节时会用到该选项 
 -Z:设置 SELinux 安全上下文(需系统支持),这个选项常用于安全敏感环境(如容器或加固系统) 

三、用法示例

1、创建单层目录

mkdir dir1            # 创建单个目录
mkdir aaa bbb ccc  # 同时创建多个目录aaa、bbb、ccc

在这里插入图片描述

2、递归创建目录(-p 选项)

 mkdir -p project/{src,logs,tmp}  # 创建多级目录(使用花括号扩展)

可以看到在当前目录下递归创建了两层目录。
在这里插入图片描述

mkdir -p data/2024/{jan,feb,mar}  # 嵌套目录结构
  • 自动处理路径缺失:若 当前目录下project 不存在,自动创建父目录。
  • 静默忽略错误:若目录已存在,不报错(适合脚本自动化)。

欢迎关注工 众 号:ItBeeCoder,查看更多Linux、Java、MySQL等的技术文章,发送“ds”获取 deepseek 资 料

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

mkdir -m 750 private_project    

在这里插入图片描述

从以上输出结果中可以看到创建的private_project的 权限为 drwxr-x—(所有者user:rwx,组group:r-x,其他:无)
mkdir -m u=rwx,g=rx,o= secret # 符号模式设置权限(同 750)

  • 优先级高于 umask:直接覆盖系统默认权限。
  • 常用场景:创建 Web 服务器的可写目录(如 755)、敏感数据目录(如 700)。
    这里涉及到了目录的权限,后面我会在介绍chmod命令的文章里专门对Linux系统中目录和文件的权限进行介绍。

4、显示操作详情(-v 选项)

mkdir -vp /var/log/app/{debug,error}

输出:

# mkdir: created directory '/var/log/app'
# mkdir: created directory '/var/log/app/debug'
# mkdir: created directory '/var/log/app/error'

5、结合 Shell 特性批量创建

使用序列生成目录名(如 dir01 ~ dir10)

mkdir -p dir{01..10}

根据列表动态创建目录

for user in alice bob charlie; do
  mkdir -p /home/$user/{documents,downloads}
done

6、在项目中构建复杂目录树:创建项目目录结构

mkdir -p my_project/{src/{main,test},docs,config,logs}

在这里插入图片描述

最终输出的项目架构为:

my_project/
├── src/
│ ├── main/
│ └── test/
├── docs/
├── config/
└── logs/

7、 创建临时目录(结合 mktemp)

TMPDIR=$(mktemp -d)  # 生成唯一临时目录路径
mkdir -p $TMPDIR     # 确保临时目录存在

8、使用mkdir 命令修复缺失的目录结构

例如:检查并补全日志目录(忽略已存在的目录)

mkdir -p /var/log/app/{debug,error} || true

mkdir 命令也可搭配其他命令一起使用,比如搭配find命令,dollar符号等,具体如下面9-12所示。

9、结合 find 命令重建目录

例如:从文件路径列表中提取目录并重建(例如备份恢复)

find /backup -type f | sed 's/\/[^/]*$//' | xargs -I{} mkdir -p {}

10、创建目录并立即进入

mkdir -p /tmp/myproject && cd $_  

上述命令中的 $_ 表示上一个命令的参数

11、 批量创建并设置权限

mkdir -p {public,private}_{data,logs}
find . -type d -name "*private*" -exec chmod 700 {} \;

12、模拟树状结构显示

mkdir -p a/{b,c/{d,e},f} && tree a

在这里插入图片描述

递归创建目录并在控制台打印出目录的树状结构。

欢迎关注工 众 号:ItBeeCoder,查看更多Linux、Java、MySQL等的技术文章,发送“ds”获取 deepseek 资 料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值