命令简介

mkdir 命令是 Linux 系统中用于创建目录的标准命令。它可以递归创建多级目录,还可以设置目录的权限和属性等。

命令格式

1
mkdir [选项] 目录名

其中:

  • 目录名: 指定要创建的目录名。可以是相对路径或绝对路径。

参数说明

参数 说明 备注
-m, –mode 设置新建目录的权限模式 使用八进制表示法
-p, –parents 递归创建目录,包括所有必需的父目录 非常有用的选项
-v, –verbose 显示创建目录的过程 方便查看执行情况
-Z, –context 为新建目录设置 SELinux 安全上下文 适用于启用 SELinux 的系统
–help 显示帮助信息 -
–version 显示版本信息 -

命令实例

基本用法

1.建单级目录

1
2
3
4
5
# 在当前目录下创建一个名为 newdir 的目录
mkdir newdir

# 在 /tmp 目录下创建一个名为 tempdir 的目录
mkdir /tmp/tempdir

2.创建多级目录

1
2
3
4
5
# 在当前目录下创建多级目录 dir1/dir2/dir3
mkdir -p dir1/dir2/dir3

# 在 /opt 目录下创建多级目录 project/src/main
mkdir -p /opt/project/src/main

3.设置目录权限

1
2
3
4
5
# 创建一个权限为 750 的目录
mkdir -m 750 private_dir

# 创建一个权限为 777 的目录
mkdir -m=777 public_dir

4.显示创建过程

1
2
# 创建多级目录,并显示创建过程
mkdir -pv data/logs/backup

扩展用法

1.结合其他命令使用

mkdir 命令可以与其他命令结合使用,实现更复杂的功能。

1
2
3
4
5
6
7
8
# 批量创建多个目录
for dir in dir1 dir2 dir3; do mkdir "$dir"; done

# 从文件读取目录名并创建
cat dir_list.txt | xargs mkdir

# 根据当前日期创建目录
mkdir "$(date +%Y%m%d)"

2.创建临时目录

在执行某些需要临时目录的操作时,可以使用 mkdir 命令快速创建临时目录。

1
2
3
4
5
6
7
# 创建一个临时目录,并在其中执行某些操作
temp_dir=$(mktemp -d)

# 执行操作...
echo "This is a temporary file." > "$temp_dir/temp.txt"

rm -rf "$temp_dir"

3.使用 mkdir 命令批量创建目录

1
2
3
4
5
6
7
8
9
# 创建多个目录,可以使用空格或换行符分隔
mkdir dir1 dir2 dir3

# 或者
mkdir -p dir{1,2,3}

# 或者
mkdir -p project/{docs,src,bin}

高级用法

1.设置 SELinux 安全上下文

在启用了 SELinux 的系统中,可以使用 -Z 选项为新建目录设置安全上下文。

1
2
3
4
5
# 为新建目录设置 SELinux 安全上下文为 user_u:object_r:user_home_dir_t
mkdir -m 700 -p -Z user_u:object_r:user_home_dir_t ~/private

# 从参考文件继承安全上下文
mkdir -m 700 -p --context=`ls -lZd /path/to/refdir` ~/new_dir

2.使用 GNU mkdir 扩展选项

在一些较新的 GNU 系统中,mkdir 命令提供了一些扩展选项,可以实现更多功能。

1
2
3
4
5
6
7
8
# 创建一个包含父目录路径信息的目录
mkdir --parents --verbose /path/to/nested/dir

# 创建一个以 0700 权限模式的目录,并在目录名后追加一个尾随斜杠
mkdir --mode=0700 --trailing-slash dir/

# 创建一个包含空格或其他特殊字符的目录
mkdir --verbose -- "My Directory With Spaces"

通过以上实例和扩展用法,相信你已经对 mkdir 命令有了更深入的了解。它不仅可以方便地创建目录,还可以与其他命令结合使用,实现更多高级功能。如果你还有任何疑问或需要进一步探讨,欢迎随时向我提出。