在CentOS这类基于Linux的操作系统中,目录是文件系统的骨架,用于组织和存储文件,熟练掌握创建目录的命令是系统管理和日常操作的基础,核心命令是mkdir(make directory的缩写),它功能强大且选项丰富,能够满足从简单到复杂的各种目录创建需求。

mkdir 命令基础
mkdir命令的基本语法非常直观:
mkdir [选项] 目录名...
其最简单的用法是直接跟上一个或多个你想创建的目录名称,要在当前工作目录下创建一个名为projects的目录,可以执行:
mkdir projects
执行后,可以使用ls或ls -l命令来验证目录是否已成功创建,如果当前目录下已经存在同名的文件或目录,系统默认会提示错误。
常用核心选项详解
mkdir的真正威力在于它的选项,其中几个选项在日常工作中尤其重要。
-p 或 --parents:递归创建父目录
这是mkdir最常用的选项之一,在创建多级目录结构时,如果父目录不存在,默认情况下mkdir会失败。-p选项可以自动创建所有必需的父目录。
你想创建一个路径为/var/www/app/static/css的目录结构,如果直接使用mkdir /var/www/app/static/css,而/var/www/app/static目录不存在,命令会报错,但使用-p选项则可以一步到位:
mkdir -p /var/www/app/static/css
该命令会检查/var、/var/www、/var/www/app、/var/www/app/static这些层级目录是否存在,如果不存在,则会逐一创建,最后创建css目录,这在编写自动化脚本时极为有用,可以确保目录结构存在,而无需逐层判断。

-m 或 --mode:设置目录权限
在创建目录的同时,可以直接使用-m选项指定其权限(模式),权限通常用三位八进制数表示,分别代表所有者、所属组和其他用户的权限(读、写、执行)。
创建一个所有者拥有所有权限,而组用户和其他用户只有读和执行权限的目录(权限码755):
mkdir -m 755 public_files
执行后,可以使用ls -ld public_files查看,会发现其权限确实是drwxr-xr-x,如果不使用-m,新建目录的权限将由系统的umask值决定,通常是755或775。
-v 或 --verbose:显示详细过程
-v选项会让mkdir在创建每个目录时都输出一条信息,告知用户它正在做什么,这在执行批量创建或不确定哪些目录会被创建时非常有用。
mkdir -v dir1 dir2 dir3
输出会类似于:
mkdir: created directory 'dir1'
mkdir: created directory 'dir2'
mkdir: created directory 'dir3'
mkdir 命令速查表
为了方便快速查阅,以下是一些常用mkdir命令的小编总结:
| 命令示例 | 功能说明 |
|---|---|
mkdir my_folder |
在当前目录下创建一个名为my_folder的目录。 |
mkdir -p project/src/main |
递归创建project/src/main多级目录结构。 |
mkdir -m 700 private_dir |
创建一个权限为700(仅所有者可读写执行)的目录。 |
mkdir -v docs images |
同时创建docs和images目录,并显示创建信息。 |
mkdir -pv assets/{js,css,img} |
使用大括号展开,一次性创建assets/js, assets/css, assets/img三个目录,并显示过程。 |
掌握mkdir命令及其核心选项,能够让你在CentOS系统中高效、精确地构建和管理文件目录结构,是每位Linux用户和管理员的必备技能。

相关问答FAQs
如果我想创建的目录已经存在,mkdir会报错吗?如何让它不报错?
解答: 是的,默认情况下,如果你尝试创建一个已经存在的目录,mkdir会输出类似“mkdir: cannot create directory ‘dirname’: File exists”的错误信息,为了避免这种情况并让命令静默执行,最简单、最常用的方法就是使用-p选项。-p选项在创建目录前会检查路径是否存在,如果存在,则什么都不做,不会产生错误。mkdir -p dirname是一个非常安全的写法,无论目录是否存在都能成功执行。
mkdir -m 755和先用mkdir创建目录再用chmod 755修改权限,这两种方式有本质区别吗?
解答: 在最终效果上,两者都会将目录权限设置为755,它们在操作过程和效率上存在细微差别。mkdir -m 755是一个原子操作,在创建目录的同时就设置好了权限,只需执行一个命令,而分步操作(mkdir后chmod)则需要两个独立的命令,在大多数情况下,这个区别可以忽略,但在编写Shell脚本或需要高性能的场景下,使用-m选项显然更高效,因为它减少了系统调用的次数。-m选项在某些特殊的文件系统或带有默认ACL(访问控制列表)的环境中,其行为可能与事后修改的chmod略有不同,但对于标准用途,两者功能是等效的。