一、命令详解
1.命令说明
mkdir
是make directory的缩写,Linux中 mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
注意
要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。
如果要创建的目录已经存在,则会提示此文件已经存在,不会继续创建目录。
2.语法格式
mkdir [option] [directory]
mkdir [选项] [目录]
3.选项描述
DESCRIPTION
andatory arguments to long options are mandatory for short options too.
#长选项的强制参数也是短选项的强制参数。
-m, --mode=MODE set file mode (as in chmod), not a=rwx - umask
#设置权限模式(类似chmod),而不是rwxrwxrwx -umask
-p, --parents no error if existing, make parent directories as needed
#递归创建目录,递归的意思是父目录及其子目录的子目录
#即使要创建的目录实现已存在也不会报错提示目录已经存在
-v, --verbose print a message for each created directory
#创建目录的时候显示过程
-Z set SELinux security context of each created directory
to the default type
--context[=CTX] like -Z, or if CTX is specified then set the SELinux
or SMACK security context to CTX
#将每个创建的目录的SELinux 安全环境设置为CTX
--help display this help and exit #帮助
--version output version information and exit #版本
二、命令示例
案例1:创建空目录 #mkdir
[root@centos7 app]#mkdir fff
[root@centos7 app]#ll -d fff
drwxr-xr-x. 2 root root 6 Dec 13 16:53 fff
案例2:创建权限为755的目录 #mkdir -m
[root@centos7 app]#mkdir -m 755 ddd
[root@centos7 app]#ll
total 32
drwxr-xr-x. 2 root root 6 Dec 13 16:57 ddd
案例3:递归创建多级目录#mkdir -p
[root@centos7 app]#mkdir -p a/b/c/d/e/f/g
[root@centos7 app]#tree a
a
└── b
└── c
└── d
└── e
└── f
└── g
6 directories, 0 files
案例4:创建目录显示过程信息#mkdir -v -p
[root@centos7 app]#mkdir -v -p aa/bb/cc/dd
mkdir: created directory ‘aa’
mkdir: created directory ‘aa/bb’
mkdir: created directory ‘aa/bb/cc’
mkdir: created directory ‘aa/bb/cc/dd’
[root@centos7 app]#tree aa
aa
└── bb
└── cc
└── dd
3 directories, 0 files
案例5:复杂操作,创建目录结构
[root@centos7 app]#mkdir -v -p program/project/{a,b,c/{chm,pdf,word},doc/{1,2,3}}
mkdir: created directory ‘program’
mkdir: created directory ‘program/project’
mkdir: created directory ‘program/project/a’
mkdir: created directory ‘program/project/b’
mkdir: created directory ‘program/project/c’
mkdir: created directory ‘program/project/c/chm’
mkdir: created directory ‘program/project/c/pdf’
mkdir: created directory ‘program/project/c/word’
mkdir: created directory ‘program/project/doc’
mkdir: created directory ‘program/project/doc/1’
mkdir: created directory ‘program/project/doc/2’
mkdir: created directory ‘program/project/doc/3’
案例6:批量创建目录
[root@centos7 app]#mkdir zzz{1..33}
[root@centos7 app]#ls
a f1_softlink fff merrys zzz11 zzz16 zzz20 zzz25 zzz3 zzz4 zzz9
aa f2 fi program zzz12 zzz17 zzz21 zzz26 zzz30 zzz5
ddd f2_hardlink fifo_file tomhome zzz13 zzz18 zzz22 zzz27 zzz31 zzz6
dir1 f4 fo zzz1 zzz14 zzz19 zzz23 zzz28 zzz32 zzz7
f1 f5 ls.log zzz10 zzz15 zzz2 zzz24 zzz29 zzz33 zzz8
案例7:一次创建多个
[root@centos7 app]#mkdir aaa bbb ccc
[root@centos7 app]#ls
a bbb dir1 f2 f5 fifo_file merrys
aa ccc f1 f2_hardlink fff fo program
aaa ddd f1_softlink f4 fi ls.log tomhome
案例8:引入文件内容创建路径
[root@centos7 app]#cat dirname
name1
name2
name3
[root@centos7 app]#mkdir -vp `cat dirname`
mkdir: created directory ‘name1’
mkdir: created directory ‘name2’
mkdir: created directory ‘name3’
mkdir
命令后面可以接多个目录名创建目录,但是如果将所有目录都放在mkdir命令后面会导致命令太长,因此使用了一对反引号(在键盘ESC下方),反引文件内容(使用cat命令读取内容)。
注意:
一个命令语句中如果反引号包含的命令,那么需要优先执行反引号中的命令语句。