在Linux系统中,创造文件夹(即目录)最核心的命令是mkdir,它是英文“make directory”的缩写。无论是新手还是系统管理员,掌握mkdir是管理文件系统的基础技能。本文将基于Linux man page和实际运维经验,系统化讲解mkdir的语法、选项、示例及相关扩展知识。

mkdir的基本语法为:mkdir [选项] 目录名。默认情况下,该命令会在当前路径下创建一个指定的目录,如果该目录已存在则报错“File exists”。若要一次性创建多级目录,必须使用-p参数,否则父目录不存在时会报错“No such file or directory”。例如输入mkdir -p a/b/c,当a不存在时也会逐级创建。
下面通过结构化表格展示mkdir常用的选项及其功能:
| 选项 | 长选项 | 作用 |
|---|---|---|
| -p | --parents | 递归创建各级目录;若目标已存在不报错 |
| -v | --verbose | 每次创建目录时输出一条提示信息 |
| -m | --mode=MODE | 按指定权限模式创建目录,如700或u=rwx |
| -Z | --context=CTX | 设置SELinux安全上下文 |
| --help | 无 | 显示帮助信息 |
| --version | 无 | 显示版本信息 |
其中-p参数使用频率极高,适合一次性创建嵌套目录。与-v组合,在脚本中可看到创建过程的日志。例如mkdir -p -v /tmp/demo/one/two会逐级显示“mkdir: created directory ...”。注意,如果目录存在,-v不会输出该目录创建信息,因为并未创建。
为了更清楚地理解不同场景下的用法,下面表格列出典型示例:
| 命令 | 执行结果/说明 |
|---|---|
| mkdir test | 在当前目录下创建名为test的文件夹 |
| mkdir -p /opt/releases/2025 | 若/opt/releases/2025的父级不存在,则一并创建 |
| mkdir -m 750 private | 创建private目录,权限为rwxr-x--- |
| mkdir -v data | 创建data并输出提示信息 |
| mkdir dir1 dir2 dir3 | 在同一路径下批量创建多个独立目录 |
| mkdir -p project/{docs,src,bin} | 创建project及docs、src、bin三个子目录 |
批量创建是提升效率的重要手段。除了直接列出多个目录名,还可以利用Shell的花括号扩展机制。如mkdir -p {1..10}/logs会生成1/2/.../10共10个子目录,每个子目录下再创建logs。该技巧特别适合创建测试环境或分日期的日志目录。
在权限管理方面,目录权限决定了用户能否进入目录、列出内容或删除文件。默认权限由umask决定,例如umask为022时,mkdir创建的目录默认权限是755。如需覆盖默认值,使用-m参数指定八进制或符号模式。比如要创建一个对属主可读写执行、对组和其他用户仅可读执行的目录,可使用mkdir -m 750 mydir。对于临时专用目录,常用mkdir -m 700 secret来保证只有属主可访问。
下表列出了目录常用权限模式及其含义:
| 八进制模式 | 符号模式 | 权限描述 |
|---|---|---|
| 700 | u=rwx,go= | 属主可读、写、执行;组和其他无权限 |
| 750 | u=rwx,g=rx,o= | 属主完全访问,组可读执行 |
| 755 | u=rwx,g=rx,o=rx | 常见目录默认权限,所有人可读执行 |
| 711 | u=rwx,go=x | 仅可进入,但不能列出内容 |
| 000 | u=,g=,o= | 无任何权限(可用特殊方法恢复) |
创造文件夹之后,通常还需要结合其他命令管理目录。例如用ls查看目录,用cd切换目录,用rmdir删除空目录,用rm -r递归删除非空目录。这些命令与mkdir共同构成Linux目录操作的基础。相关命令对比见下表:
| 命令 | 用途 | 注意事项 |
|---|---|---|
| mkdir | 创建目录 | 父目录不存在时需加-p |
| rmdir | 删除空目录 | 目录非空则失败 |
| rm -r | 递归删除目录及其内容 | 危险性高,确认后再操作 |
| ls -ld | 显示目录自身属性 | 不加-d会显示内容 |
| cd | 进入目录 | 需要执行权限 |
除了基础用法,扩展场景也很重要。在自动化脚本中,常用mktemp -d创建临时目录,该命令会在/tmp下生成一个随机目录名并输出路径,比手工“mkdir -p /tmp/XXX”更安全。若需要带有日期的目录,可以用命令替换:mkdir $(date +%Y%m%d),创建如20250524格式的目录。结合循环或xargs,还能批量创建大量有规律的目录。
在文件系统层次上,Linux一切皆文件,目录也是特殊的文件。根目录为“/”,普通用户的主目录为“/home/用户名”。创建目录需要所在位置的写权限。如果目标位于挂载点内,还要考虑磁盘空间和inode是否充足。可用df -i和df -h检查inode和空间。
最后要特别提醒:不要使用英文开头的破折号或空格作为目录名,容易导致命令解析问题。如果目录名含有空格,请用引号括起来或使用反斜杠转义,例如mkdir "my dir"或mkdir my\ dir。另外,“+”和“-”等特殊字符可出现在文件名中,但某些字符如“/”不能出现在目录名中。
综上所述,Linux中创造文件夹的核心命令是mkdir,掌握选项-p、-v、-m,结合批量展开、权限设置和自动化技巧,可以安全高效地管理目录结构。运维人员还应注意权限过度开放带来的风险,尽量用-m限制目录访问权限。希望本文的专业表格和详细解释能帮助你更深入地理解Linux目录创建的全部要点。