目录
6. shell命令--mkdir
功能说明
mkdir 是 Linux 和 Unix 系统中的一个基本命令,mkdir 命令来自英文词组 make directories 的缩写,该命令的使用简单,用于创建目录,但需要注意,若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。若目录不存在,但具有嵌套的依赖关系时,例如 /Dir1/Dir2/Dir3/Dir4/Dir5,要想一次性创建则需要加入 -p 参数,进行递归操作。
语法格式
mkdir [-p] dirName
SYNOPSIS
mkdir [OPTION]... DIRECTORY...
选项说明
-m | 创建目录的同时设置权限 | -v | 显示执行过程详细信息 |
-p | 递归创建多级目录 | -z | 设置目录安全上下文 |
实践操作
1. 不使用任何参数创建目录
ls /test #查看有没有 /test 目录,演示为没有,提示为:cannot access /test: No such file or directory
mkdir /test #直接创建 /test 目录
ls /test #再次查看一下
mkdir /test #再次创建,提示已存在,File exists 文件已存在
2. 使用 -p 参数递归创建目录
mkdir -p /test #发现即使存在也不会提示文件已存在
mkdir /test/mkdir #表示在 /test 目录下再创建一个名为 mkdir 的目录
cd /test/mkdir #切换到新创建的目录下
ls #查看一下,发现没有内容
mkdir aaa/bbb #再创建一下 aaa 下的 bbb,因为不存在 aaa,所以一样也报错
mkdir -p aaa/bbb #这是使用参数 -p ,发现就可以创建了。
ls #查看一下当前目录下内容
ls aaa/ #查看一下 aaa 目录下内容
3. 加 -v 参数显示创建目录的过程
mkdir -pv 111/222 #创建目录 111 下的 222,加上参数 -v ,会显示创建目录的过程
ls #查看一下
ls 111 #查看一下目录 111 下内容
4. 创建目录时可使用 -m 参数设置目录的默认权限
mkdir -m 700 bbb #创建目录 bbb 权限为 700
mkdir -m 333 ccc #创建目录 ccc 权限为 333
ls -ld * #查看一下
命令示例:1. 不使用任何参数创建目录
ls /test
mkdir /test
ls /test
mkdir /test
输出结果:
[root@MineGi ~]# ls /test
ls: 无法访问/test: 没有那个文件或目录
[root@MineGi ~]# mkdir /test
[root@MineGi ~]# ls /test
[root@MineGi ~]# mkdir /test
mkdir: 无法创建目录"/test": 文件已存在
[root@MineGi ~]#
命令示例:2. 使用 -p 参数递归创建目录
mkdir -p /test
mkdir /test/mkdir
cd /test/mkdir
ls
mkdir aaa/bbb
mkdir -p aaa/bbb
ls
ls aaa/
输出结果:
[root@MineGi ~]# mkdir -p /test
[root@MineGi ~]# mkdir /test/mkdir
[root@MineGi ~]# cd /test/mkdir
[root@MineGi /test/mkdir]# ls
[root@MineGi /test/mkdir]# mkdir aaa/bbb
mkdir: 无法创建目录"aaa/bbb": 没有那个文件或目录
[root@MineGi /test/mkdir]# mkdir -p aaa/bbb
[root@MineGi /test/mkdir]# ls
aaa
[root@MineGi /test/mkdir]# ls aaa/
bbb
[root@MineGi /test/mkdir]#
命令示例:3. 加 -v 参数显示创建目录的过程
mkdir -pv 111/222
ls
ls 111
输出结果:
[root@MineGi /test/mkdir]# mkdir -pv 111/222
mkdir: 已创建目录 "111"
mkdir: 已创建目录 "111/222"
[root@MineGi /test/mkdir]# ls
111 aaa
[root@MineGi /test/mkdir]# ls 111
222
[root@MineGi /test/mkdir]#
命令示例:4. 创建目录时可使用 -m 参数设置目录的默认权限
mkdir -m 700 bbb
mkdir -m 333 ccc
ls -ld *
输出结果:
[root@MineGi /test/mkdir]# mkdir -m 700 bbb
[root@MineGi /test/mkdir]# mkdir -m 333 ccc
[root@MineGi /test/mkdir]# ls -ld *
drwxr-xr-x 3 root root 17 11月 23 13:45 111
drwxr-xr-x 3 root root 17 11月 23 13:45 aaa
drwx------ 2 root root 6 11月 23 13:51 bbb
d-wx-wx-wx 2 root root 6 11月 23 13:51 ccc
[root@MineGi /test/mkdir]#
注意事项
- 如果指定的目录已存在,mkdir 命令通常会显示一个错误消息。为了避免这种情况,你可以使用 mkdir -p,这样如果目录已存在,它就不会显示错误。
- mkdir 命令的权限通常被授予所有用户,但创建新目录的能力受到用户当前工作目录的权限以及文件系统权限的限制。
除了上述提到的基本用法和选项外,mkdir 命令还有一些其他的特性和注意事项。
首先,mkdir 命令是大小写敏感的,所以 mkdir New_Directory 和 mkdir new_directory 会创建两个不同的目录。因此,在使用 mkdir 命令时,需要确保目录名的大小写符合你的预期。
其次,当使用 -p 选项递归创建目录时,如果中间的某个目录已经存在,mkdir 命令不会报错,而是继续创建剩余的目录。这可以大大简化创建嵌套目录结构的过程,避免因为某个中间目录已经存在而导致的错误。
此外,mkdir 命令还可以与其他命令结合使用,以实现更复杂的目录创建和管理任务。例如,你可以使用 find 命令结合 mkdir 命令来查找并创建缺失的目录结构,或者使用 xargs 命令来批量创建多个目录。
最后,需要注意的是,虽然 mkdir 命令可以创建目录,但它并不能直接改变已经存在的目录的权限或属性。如果你需要修改目录的权限或属性,应该使用 chmod 或 chown 等命令。
总的来说,mkdir 是一个强大且灵活的命令,可以帮助你在 Linux 和 Unix 系统中轻松创建和管理目录。通过熟悉和掌握它的基本用法和选项,你可以更加高效地组织和管理你的文件和目录结构。如果你在使用 mkdir 命令时遇到任何问题或需要进一步的帮助,不妨查阅相关的手册页或在线文档,或者向社区寻求帮助。