HOME

mkdir命令详解

1. 简介

mkdir 是一个在 Linux 和 Unix 操作系统中常用的命令,用于创建目录。它的全称是 "make directory"(创建目录)。这个命令非常简单但功能强大,广泛应用于文件管理、软件开发以及系统管理等多种场景。

2. 基本语法与用法

基本的 mkdir 命令格式如下:

mkdir [选项] 目录名1 [目录名2 ...]

2.1 核心参数

例如,创建一个名为 "test" 的目录:

mkdir test

2.2 常用选项

-p (递归创建多级目录)

-p 选项允许一次创建多级目录,并且不会报错如果目标目录已经存在。

mkdir -p test/subdir1/subdir2

上述命令会创建 test 目录,然后在其中依次创建 subdir1subdir2。如果这些子目录已经存在,则不产生错误信息。

-m (设置权限)

-m 选项可以在创建目录的同时设置权限模式(即,umask 值的补码):

mkdir -m 755 test

这会创建名为 test 的目录,并且其默认权限为 rwxr-x---

-v (详细模式)

使用 -v 可以在命令执行过程中查看详细信息,了解每个目录的创建情况:

mkdir -v test/subdir1/subdir2

输出示例:

Creating directory: test
Creating directory: test/subdir1
Creating directory: test/subdir1/subdir2

3. 实际操作案例

案例一:创建单个目录

mkdir myproject

案例二:使用 -p 选项递归创建多级目录

假设要创建一个复杂的文件结构,可以这样:

mkdir -p data/students/grades/courses/math

结果会在当前目录下依次生成 data, students, grades, coursesmath 这五个子目录。

案例三:设置特定权限

若要创建一个只可由用户读写、但对其他用户不可见的目录,可以这样操作:

mkdir -m 600 myprivatefolder

该命令创建了名为 myprivatefolder 的目录,并将其权限设为 rw-------

4. 常见问题与解决方法

Q1: 创建目录时提示“文件已存在”怎么办?

使用 -p 参数可以忽略这个错误:

mkdir -p already_exists

Q2: 如何确认某个路径是否为目录?

可以结合 test[-d] 操作来检查一个给定的路径是否是目录。

例如,确认 /home/user/mydir 是否存在且是一个目录:

if [ -d /home/user/mydir ]; then echo "It's a directory"; fi

5. 总结

mkdir 命令简单而强大。通过结合不同的选项和参数,可以完成多种复杂的操作场景。无论是简单的单级目录创建还是多层级的递归创建、权限设置等,mkdir 都是不可或缺的一个工具。熟练掌握这一命令对于高效管理文件系统具有重要意义。