linux里面的mkdir命令

mkdir命令

[功能说明]

  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 -pv cat ~/zlz.txt
 #我们在/tmp目录下创建zlz.txt文件里面的目录,注意这里的点是tab键上面的点,在店里面的内容有优先执行权限,所以是先查看到zlz文档里面目录信息然后根据文档信息在创建目录。这个方法对于备份很多目录的文件还是很有效的。
[ tmp]# tree /tmp/a
/tmp/a
├── a
├── b
├── c
└── d

相关推荐