小惠 2020-05-12
[功能说明]
mkdir命令是“make directories”的缩写形式,其功能是创建目录,默认情况下,如果目录已经存在,则会提示此文件已存在,而不会继续创建目录,也可以一次创建多个目录。
[语法格式]
参数选项 | 解释说明 |
---|---|
-p | (1)递归创建目录,(2)即使要创建的目录首先已存在也不会报错提示目录存在。 |
-m | 设置新创建目录的默认目录对应的权限 |
-v | 显示创建目录的过程 |
使用范例
使用-p命令创建目录
[ ~]# mkdir a/b #如果没有加-p选项,因为a目录不存在所以b目录也不会创建。
mkdir: cannot create directory ‘a/b’: No such file or directory
[ ~]# mkdir -p a/b #使用了-p选项系统发现没有a目录会先创建a目录在创建b目录。
[ ~]# tree a #使用tree命令查询一下。确认两个命令都存在了。
a
└── b
创建目录并赋予权限
[ ~]# mkdir -m 333 abc
[ ~]# ll
d-wx-wx-wx. 2 root root 6 May 12 08:32 abc #创建目录的时候指定了目录写和执行的权限
创建多个目录
[ ~]# mkdir -pv a/{a1,a2}/{b1,b2}
mkdir: created directory ‘a’
mkdir: created directory ‘a/a1’
mkdir: created directory ‘a/a1/b1’
mkdir: created directory ‘a/a1/b2’
mkdir: created directory ‘a/a2’
mkdir: created directory ‘a/a2/b1’
mkdir: created directory ‘a/a2/b2’
[ ~]# tree a
a
├── a1
│?? ├── b1
│?? └── b2
└── a2
├── b1
└── b2
扩展知识
大括号的特殊用法
[ ~]# echo a{a,b} #这一个例子可见大括号内的内容是分别被外面的内容分别引用的
aa ab
[ ~]# echo a{,b}
a ab
利用大括号的这一个特性我们可以创建多个连续目录
[ ~]# mkdir -pv a/{a..d} #这里的点点表示创建从a到d的连续目录
[ ~]# tree a
a
├── a
├── b
├── c
└── d
我们可以利用文件目录创建目录
[ ~]# tree -fid --noreport a >>zlz.txt #这里我们利用tree命令输出把目录输出到文件,f是打印路径的前缀,i是不打印缩进线,--noreport是不生成报告
[ ~]# cat zlz.txt #这个就是我们生成的zlz.txt文件里面的内容。
a
a/a
a/b
a/c
a/d
[ tmp]# mkdir -pvcat ~/zlz.txt
#我们在/tmp目录下创建zlz.txt文件里面的目录,注意这里的点是tab键上面的点,在店里面的内容有优先执行权限,所以是先查看到zlz文档里面目录信息然后根据文档信息在创建目录。这个方法对于备份很多目录的文件还是很有效的。
[ tmp]# tree /tmp/a
/tmp/a
├── a
├── b
├── c
└── d