mkdir
是 Linux 和类 Unix 操作系统中的一个基本命令,用于创建目录。它是 "make directory" 的缩写,可以按照指定的路径创建一个或多个目录,同时支持设置目录的权限。
以下是对 mkdir
命令的详细介绍,包括基本用法、常用选项和示例。
基本语法
1 | mkdir [选项] 目录名称 |
- 目录名称:指定要创建的目录路径,可以是相对路径或绝对路径。
- 选项:用于扩展功能,比如递归创建、设置权限等。
常用选项
选项 | 功能 |
---|---|
-p |
递归创建多级目录。如果父目录不存在,会一并创建。 |
-m MODE |
设置新目录的权限(权限用八进制表示)。 |
-v |
显示创建目录的详细信息。 |
详解选项
递归创建目录(-p
)
- 如果要创建的目录路径中包含不存在的父目录,
-p
选项会自动创建所有必要的父目录。 - 示例:
1
mkdir -p /path/to/parent/child
- 如果
/path/to/parent
不存在,mkdir -p
会自动创建parent
和child
目录。
- 如果
设置目录权限(-m
)
- 使用
-m
选项可以直接指定新建目录的权限。 - 权限使用八进制数指定(例如
755
,700
)。 - 示例:
1
mkdir -m 755 my_folder
- 创建
my_folder
并设置权限为755
(拥有者可读写执行,组和其他用户可读执行)。
- 创建
显示详细信息(-v
)
- 使用
-v
选项可以显示每个创建的目录对应的操作信息。 - 示例:输出:
1
mkdir -v new_folder
1
mkdir: created directory 'new_folder'
示例
创建单个目录
1 | mkdir my_folder |
- 在当前目录下创建名为
my_folder
的目录。
递归创建多级目录
1 | mkdir -p /home/user/projects/python/scripts |
- 如果路径
/home/user/projects/python
不存在,-p
选项会自动创建所有必要的父目录。
创建目录并设置权限
1 | mkdir -m 700 secure_folder |
- 创建名为
secure_folder
的目录,并将权限设置为700
(仅拥有者可读写执行)。
创建多个目录
1 | mkdir folder1 folder2 folder3 |
- 一次创建
folder1
、folder2
和folder3
三个目录。
显示详细信息
1 | mkdir -v project_folder |
输出:
1 | mkdir: created directory 'project_folder' |
权限的说明
-
默认情况下,
mkdir
创建的目录权限由umask
控制(用户文件创建模式掩码)。- 例如,如果
umask
是0022
,默认目录权限为777 - 022 = 755
。 - 查看当前的
umask
:1
umask
- 例如,如果
-
通过
-m
选项可以覆盖默认的权限设置。
错误处理
-
目录已存在
- 如果尝试创建的目录已存在,
mkdir
会报错:1
mkdir: cannot create directory 'my_folder': File exists
- 如果尝试创建的目录已存在,
-
无权限创建目录
- 如果没有权限在指定路径下创建目录,
mkdir
会报错:1
mkdir: cannot create directory '/restricted_folder': Permission denied
- 如果没有权限在指定路径下创建目录,
-
解决方法
- 使用
-p
选项避免 "已存在" 的错误。 - 确保在有权限的路径下执行,或者使用
sudo
提权:1
sudo mkdir /restricted_folder
- 使用
结合其他命令
-
递归创建并切换到新目录
1
mkdir -p /path/to/new_folder && cd /path/to/new_folder
-
创建目录后立即设置权限
1
mkdir new_folder && chmod 700 new_folder
-
配合
find
查看创建的目录1
mkdir -p /tmp/test_folder && find /tmp -name test_folder
总结
mkdir
是一个功能简单但非常实用的命令,用于快速创建目录。- 通过选项
-p
和-m
可以递归创建目录并灵活设置权限。 - 配合其他命令(如
cd
、chmod
),可以提高操作效率,是日常文件管理中不可或缺的工具。