在Linux操作系统中,建立文件夹(也称为“目录”)是日常管理和系统维护的基础操作之一,无论是开发者、系统管理员还是普通用户,掌握创建文件夹的方法都是必备技能,Linux下创建文件夹主要通过命令行工具实现,同时也支持图形界面的操作方式,本文将详细介绍命令行中的核心命令mkdir、常用参数及场景应用,并简要说明图形界面的操作方法,最后补充进阶技巧和常见问题解答。

命令行创建文件夹:mkdir命令详解
命令行是Linux环境下最高效的操作方式,其中mkdir(make directories)是专门用于创建文件夹的命令,掌握其语法和参数,能灵活应对各种创建需求。
基本语法
mkdir命令的基本语法为:mkdir [选项] 目录名
“选项”用于控制创建行为(如递归创建、设置权限等),“目录名”可以是单个目录路径,也可以是多个目录名(用空格分隔)。
常用选项与功能
mkdir命令提供了多个选项,以支持不同的创建场景,以下是常用选项的详细说明及示例:
(1)创建单个目录
最简单的用法是直接指定目录名,例如在当前路径下创建一个名为testdir的文件夹:mkdir testdir
执行后,通过ls命令可查看当前目录下已生成testdir文件夹,若创建时目标目录已存在,命令会提示“File exists”(文件已存在)。
(2)同时创建多个目录
若需一次性创建多个同层级目录,可在命令中依次列出目录名,用空格分隔:mkdir dir1 dir2 dir3
此命令会在当前路径下同时创建dir1、dir2、dir3三个文件夹。
(3)递归创建嵌套目录(-p选项)
当需要创建多级嵌套目录(如a/b/c)时,若直接执行mkdir a/b/c,系统会因父目录a或b不存在而报错,此时需使用-p(parents)选项,自动创建所需的父目录:mkdir -p a/b/c
即使a、b目录不存在,命令也会逐级创建,最终生成完整的目录结构。-p选项还能避免因目录已存在而报错,例如执行mkdir -p existing_dir/new_dir时,若existing_dir已存在,命令会直接在existing_dir下创建new_dir,而不会报错。
(4)设置目录权限(-m选项)
默认情况下,新创建的目录权限由系统umask值决定(通常为755,即所有者可读写执行,组用户和其他用户可读执行),若需自定义权限,可使用-m(mode)选项,权限通过八进制数字表示(如700表示所有者可读写执行,组用户和其他用户无权限):mkdir -m 700 private_dir
执行后,private_dir的权限为drwx------(所有者完全控制,组和其他用户无权限)。
常见的权限数字组合及其含义:

755:所有者rwx,组和其他用户r-x(默认目录权限)700:所有者rwx,组和其他用户—(私有目录)777:所有用户rwx(不推荐,存在安全风险)
(5)显示创建过程(-v选项)
当需要确认目录是否成功创建,或查看批量创建的详细信息时,可使用-v(verbose)选项,命令会输出每个目录的创建状态:mkdir -v createdir1 createdir2
输出示例:mkdir: created directory 'createdir1'mkdir: created directory 'createdir2'
(6)设置SELinux安全上下文(-Z选项)
在启用SELinux的系统中,可通过-Z选项为新目录设置安全上下文(如public_content_t用于共享目录):mkdir -Z -m 755 shared_dir
此选项适用于需要严格遵循安全策略的场景,普通用户使用较少。
创建不同路径的目录
- 在当前路径下创建:直接指定目录名(如
mkdir newdir)。 - 在指定路径下创建:需提供完整路径,例如在
/home/user下创建docs目录:
mkdir /home/user/docs
若路径中包含不存在的父目录,需结合-p选项(如mkdir -p /home/user/docs/projects)。 - 使用相对路径创建:例如在当前目录的上一级创建
temp目录:
mkdir ../temp
图形界面创建文件夹
对于习惯图形界面的用户,Linux桌面环境(如GNOME、KDE、XFCE等)提供了直观的创建方式,以主流的GNOME桌面环境(Nautilus文件管理器)为例:
-
通过右键菜单创建:
- 打开文件管理器,进入目标路径(如主目录)。
- 在空白处右键单击,选择“创建文件夹”选项。
- 输入文件夹名称(如“我的文档”),按回车键即可生成。
-
通过文件管理器菜单栏创建:
- 打开文件管理器,点击顶部菜单栏的“文件”→“创建文件夹”。
- 输入名称后确认,完成创建。
图形界面操作简单直观,无需记忆命令,但批量创建或嵌套目录时效率较低,适合普通用户的日常使用。
进阶技巧与注意事项
结合通配符批量创建目录
若需创建一系列有规律的目录(如dir1、dir2…dir10),可结合花括号扩展( brace expansion)实现:mkdir dir{1..10}
此命令会一次性创建dir1至dir10共10个目录,也可创建自定义序列,如mkdir {a,b,c}_test,生成a_test、b_test、c_test三个目录。

在脚本中安全创建目录
在Shell脚本中,若需确保目录存在(避免后续命令因目录缺失报错),推荐使用-p选项:
#!/bin/bash TARGET_DIR="/app/data/logs" mkdir -p "$TARGET_DIR" echo "目录 $TARGET_DIR 已准备就绪"
此处"$TARGET_DIR"使用双引号包裹,可避免目录名中包含空格或特殊字符导致解析错误。
权限与错误处理
- 权限不足:若在系统目录(如
/usr/local)下创建目录,普通用户会提示“Permission denied”,需使用sudo提权:
sudo mkdir -p /usr/local/myapp
输入当前用户密码后,以管理员权限创建目录。 - 避免目录名冲突:
mkdir命令不会覆盖已存在的目录,若需强制覆盖需先删除目录(rm -r),但操作前需确认目录内无重要文件,避免数据丢失。
mkdir命令常用选项速查表
| 选项 | 全称 | 功能描述 | 示例 |
|---|---|---|---|
| -p | parents | 递归创建目录,包括所需的父目录 | mkdir -p a/b/c |
| -m | mode | 设置目录权限(八进制) | mkdir -m 700 private |
| -v | verbose | 显示创建目录的详细信息 | mkdir -v dir1 dir2 |
| -Z | context | 设置SELinux安全上下文 | mkdir -Z shared_dir |
相关问答FAQs
问题1:创建文件夹时提示“Permission denied”如何解决?
解答:通常是因为当前用户对目标路径没有写入权限,解决方法有两种:
- 使用管理员权限:若目标目录为系统目录(如
/opt、/var),通过sudo mkdir提权,例如sudo mkdir /opt/myapp,输入用户密码后即可创建。 - 修改父目录权限:若目标目录在用户主目录下,可能是父目录权限限制,可通过
chmod命令为当前用户添加写权限,例如chmod u+w ./parent_dir后再创建。
问题2:如何创建带空格或特殊字符的文件夹名称?
解答:在命令行中,带空格或特殊字符(如、、等)的目录名需用引号括起来,或使用反斜杠转义空格。
- 使用双引号:
mkdir "my folder"(创建名称为“my folder”的目录) - 使用单引号:
mkdir 'project@2023'(创建名称为“project@2023”的目录) - 转义空格:
mkdir my folder(效果与双引号相同)
图形界面中无需特殊处理,直接输入带空格的名称即可。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/19535.html