在Linux操作系统中,生成文件夹是日常管理和系统维护中的基础操作,主要通过mkdir
命令实现。mkdir
是"make directories"的缩写,功能强大且灵活,支持多种参数以适应不同场景需求,本文将详细介绍mkdir
命令的基本用法、高级参数、常见场景及注意事项,并通过表格对比关键参数功能,最后附上相关问答。

基本用法
mkdir
命令最简单的语法为mkdir 目录名
,用于在当前路径下创建单个文件夹,在用户主目录下创建一个名为documents
的文件夹,可执行mkdir documents
,若需创建多级嵌套目录(如project/src
),直接使用mkdir project/src
会报错,因为父目录project
不存在,此时需通过-p
参数(递归创建)解决,即mkdir -p project/src
,该参数会自动创建所有不存在的父目录。
高级参数与功能
-
-p
(递归创建)
用于创建多级目录结构,避免因父目录不存在而报错,例如mkdir -p /tmp/a/b/c
会逐级创建tmp
、a
、b
、c
四个目录,即使tmp
已存在,也不会报错。 -
-m
(设置权限)
可为新创建的目录指定权限模式,格式为mkdir -m 权限 目录名
,例如mkdir -m 755 new_dir
会将new_dir
的权限设置为rwxr-xr-x
(所有者可读写执行,组用户和其他用户可读执行),权限需用八进制表示,如777
(完全开放)、700
(仅所有者可访问)等。 -
-v
(显示创建过程)
加上-v
参数后,mkdir
会输出每个成功创建的目录信息,便于调试或确认操作结果,例如mkdir -v dir1 dir2
会显示mkdir: created directory 'dir1'
和mkdir: created directory 'dir2'
。(图片来源网络,侵删) -
-Z
(设置SELinux上下文)
在启用SELinux的系统中,可通过-Z
为新目录设置安全上下文,例如mkdir -Z system_u:object_r:httpd_sys_content_t:s0 web_dir
会将web_dir
的SELinux上下文设置为Web服务可访问的类型。
批量创建与特殊场景
-
创建多个目录
可一次性创建多个目录,用空格分隔,如mkdir dir1 dir2 dir3
,若需批量创建带序号的目录(如dir1
到dir10
),可结合for
循环:for i in {1..10}; do mkdir "dir$i"; done
。 -
创建带空格或特殊字符的目录
目录名中含空格时需用引号包裹,如mkdir "my folder"
,特殊字符(如、)需用转义或引号处理,例如mkdir "test*dir"
。 -
基于文件列表创建目录
若需根据文本文件中的目录名批量创建,可结合xargs
:cat dir_list.txt | xargs mkdir -p
,其中dir_list.txt
每行包含一个目录名。(图片来源网络,侵删)
参数对比与注意事项
以下是mkdir
常用参数的功能对比:
参数 | 全称 | 功能描述 | 示例 |
---|---|---|---|
-p |
--parents |
递归创建多级目录,忽略已存在的父目录 | mkdir -p /a/b/c |
-m |
--mode |
设置目录权限(八进制) | mkdir -m 700 secret |
-v |
--verbose |
显示创建过程的详细信息 | mkdir -v dir1 dir2 |
-Z |
--context |
设置SELinux安全上下文 | mkdir -Z web_data |
注意事项:
- 创建目录需确保当前用户对父目录有写权限,否则会报错(如
Permission denied
)。 - 权限设置需谨慎,
-m 777
会降低安全性,仅建议临时测试使用。 - 在脚本中使用
mkdir -p
可避免因目录已存在而中断流程,适合自动化任务。
相关问答FAQs
Q1: 如何在Linux中创建一个隐藏目录?
A1: 隐藏目录以开头,直接执行mkdir .hidden_dir
即可,例如mkdir .config
会创建一个隐藏的config
目录,通过ls -a
可查看。
Q2: mkdir
命令创建目录时,如何避免因权限不足而失败?
A2: 可通过sudo
获取管理员权限执行,如sudo mkdir /root/protected_dir
,若需为当前用户设置权限,可先用chmod
修改父目录权限(如chmod u+w /parent_dir
),再执行mkdir
。