Linux命令行创建文件夹以mkdir为核心命令,基础操作中,mkdir 目录名可创建单个目录,mkdir dir1 dir2可批量创建多个目录,进阶技巧包括:加-p选项递归创建嵌套目录(如mkdir -p parent/child),避免父目录不存在时报错;用-m设置权限(如mkdir -m 755 newdir);结合花括号批量生成层级目录(如mkdir -p dir/{a,b,c}),需注意权限问题,善用ls验证结果,灵活运用选项可高效管理目录结构。
在Linux系统中,命令行是高效管理文件的核心工具,创建文件夹(目录)是最常见的操作之一,掌握命令行下的创建方法不仅能提升操作效率,更是自动化脚本、服务器管理等场景的基础,本文将详细介绍Linux命令行创建文件夹的命令mkdir,从基础用法到进阶技巧,助你从入门到熟练。
基础用法:mkdir命令的基本格式
mkdir(Make Directory)是Linux中专门用于创建目录的命令,其基本语法非常简单,核心格式为:
mkdir [选项] 目录名
创建单个目录
最简单的用法是直接指定目录名,在当前路径下创建一个新目录,在当前目录下创建名为test的文件夹:

mkdir test
执行后,通过ls或ls -l命令即可查看新创建的test目录(ls -l会显示详细信息,如权限、所有者等)。
创建多个目录
如果需要一次性创建多个目录,只需在命令中用空格分隔多个目录名即可,同时创建doc、music、picture三个目录:
mkdir doc music picture
这些新目录都会在当前路径下被创建,彼此之间无层级关系。
核心选项详解:让mkdir更强大
mkdir命令支持多个选项,通过组合选项可以实现更灵活的目录创建功能,以下是几个最常用且实用的选项:
-p:递归创建多级目录(最常用!)
当需要创建的目录包含多级嵌套时(如project/src/include),如果父目录project或src不存在,直接使用mkdir project/src/include会报错(No such file or directory)。-p选项(--parents)就能解决问题——它会自动创建所有不存在的父目录。
示例:
创建多级目录project/src/include:
mkdir -p project/src/include
即使project和src不存在,命令也会自动创建整个目录链。
补充:-p选项还能避免重复创建已存在的目录。project已存在时,再次执行mkdir -p project/src不会报错,只会创建src子目录。
-v:显示创建过程(调试友好)
使用-v(--verbose)选项,mkdir会打印出每个被创建的目录名称,方便确认操作是否成功,尤其适合创建多级目录时查看详细过程。
示例:
mkdir -v -p project/src/include
执行后会输出类似内容:
mkdir: created directory 'project'
mkdir: created directory 'project/src'
mkdir: created directory 'project/src/include'
-m:设置目录权限
默认情况下,新创建的目录权限为755(所有者可读/写/执行,组用户和其他用户可读/执行),如果需要自定义权限,可以使用-m(--mode)选项,后接权限数字(如700、755等)。
权限数字规则:
4:读(r)2:写(w)1:执行(x)- 三位数字分别对应:所有者、组用户、其他用户。
示例:
创建一个权限为700(仅所有者可读/写/执行)的private目录:
mkdir -m 700 private
执行ls -l private会看到权限为drwx------。
其他实用选项
-Z:设置目录的SELinux安全上下文(适用于SELinux启用环境,如mkdir -Z system_u:object_r:default_t:s0 dir,普通用户较少使用)。--help:显示mkdir命令的帮助信息(mkdir --help)。--version:显示mkdir命令的版本信息(mkdir --version)。
注意事项与常见错误
忘记-p导致“父目录不存在”错误
错误示例:
mkdir a/b/c # 如果a或b不存在,会报错
正确做法:
mkdir -p a/b/c
权限不足
如果当前用户对目标路径的父目录没有写权限,mkdir会报错(如Permission denied)。/root目录下只有root用户有写权限,普通用户直接执行mkdir /root/test会失败。
解决方法:
使用sudo提升权限(需要管理员密码):
sudo mkdir /root/test
目录名含特殊字符
如果目录名包含空格、、等特殊字符,直接使用会导致命令解析错误。mkdir my folder会被系统理解为两个参数(my和folder),而不是一个名为my folder的目录。
解决方法:
用单引号()或双引号()将目录名括起来:
mkdir "my folder" mkdir 'test*dir'
实用技巧:提升效率的进阶用法
通配符批量创建目录
结合通配符,可以批量创建有规律的目录。
- 创建
dir1、dir2、dir3:mkdir dir{1,2,3} - 创建
dir_a到dir_d:mkdir dir_{a..d} - 创建按日期命名的目录(如
20231001):mkdir $(date +%Y%m%d)
脚本中判断目录是否存在再创建
在Shell脚本中,经常需要确保某个目录存在,避免后续操作因目录不存在而失败,可以通过if条件判断实现:
if [ ! -d "logs" ]; then
mkdir -p logs
echo "目录 'logs' 创建成功"
else
echo "目录 'logs' 已存在"
fi
解释:-d "logs"判断logs是否为目录,表示取反(即“不存在”时执行mkdir)。
结合xargs批量创建(高级场景)
如果需要从文件或命令输出中读取目录名并批量创建,可以结合xargs使用,从dirs.txt文件中读取目录名(每行一个目录)并创建:
cat dirs.txt | xargs mkdir -p
dirs.txt内容示例:
project/src
data/input
data/output
mkdir命令是Linux文件管理的基础,也是命令行操作的核心技能,从基础的mkdir 目录名,到带选项的mkdir -p -v -m 目录名,再到脚本中的灵活应用,掌握这些用法能让你在Linux系统中更高效地管理目录。
关键点回顾:
- 基础:
mkdir创建单个/多个目录。 - 核心:
-p解决多级目录创建,-v显示过程,-m设置权限。 - 注意:特殊字符需用引号,权限不足用
sudo。 - 进阶:通配符批量创建、脚本条件判断、
xargs批量处理。
多动手实践,尝试在不同场景下使用mkdir,你会逐渐发现命令行的高效与强大!


