mkdir:建立目录

mkdir:命令linux

  一、命令详解windows

    【功能说明】测试

      mkdir命令是“make  directories”中每一个单词的粗体字母组合而成,其功能是建立目录,默认状况下,若是要建立的目录已经存在,则会提示此文件已经存在;而不会继续建立目录spa

    【语法格式】递归

  mkdir    [option]    [directory]ci

  mkdir  [选项]       [目录]字符串

    【选项说明】io

参数选项 解释说明(带  Δ  的为重点)
-p
  1. 递归建立目录,递归的意思是父目录及其子目录的子目录           Δ 
  2. 即便要建立的目录实现已存在也不会报错提示目录已经存在
-m 设置新建立目录的默认目录对应的权限
-v 显示建立目录的过程

  二、使用案例table

    一、基础范例test

      案例一、不使用任何命令参数建立目录用法示例。

      咱们先来查看下当前的目录树结构,命令以下:

  [root@1-230 ~]# cd
  [root@1-230 ~]# tree -d
  .                                 #根据结果能够看出当前目录下没有任何目录

  0 directories

      开始测试建立目录,并检查:

  [root@1-230 ~]# mkdir data         #在当前目录下建立data目录,此处data是相对路径
  [root@1-230 ~]# tree -d
  .
  └── data                         #能够看到data目录已经建立。

  1 directory
  [root@1-230 ~]# mkdir data          #再次执行建立命令会提示目录已经存在。
  mkdir: 没法建立目录"data": 文件已存在

      扩展知识:

        windows下的目录路径样式为d:\data\test,而linux下的路径样式为/data/test,它们的目录顶点和分隔符均不一样。

      案例2:使用-p参数递归建立目录

          当咱们建立多级目录时,若是第一级目录(cc)不存在,那么咱们建立结果会报错,致使没法建立成果,操做以下:

[root@1-230 ~]# mkdir cc/test
mkdir: cannot create directory 'cc/test': No such file or directory        #提示没有这个文件或目录

          此时,能够指定-P参数递归建立多级目录:

[root@1-230 ~]# mkdir -p cc/test

[root@1-230 ~]# tree -d
.
|-- cc
| `-- test
`-- data

3 directories

         使用mkdir建立多级目录时,建议直接使用-p参数,能够避免出现“no such file or directory”这样没有文件或目录的报错了,不会影响已存在的目录。

      案例3:加-v参数显示建立目录的过程。

           使用-v参数显示建立目录的详细过程,具体操做命令以下:

[root@1-230 ~]# mkdir -pv aa/test
mkdir: created directory 'aa'
mkdir: created directory 'aa/test'

           提示:

             其实这个-v没有什么实际用途。

      案例4:建立目录时可以使用-m参数设置目录的默认权限。

[root@1-230 ~]# mkdir dir1
[root@1-230 ~]# ls -ld dir1                           #ls命令的使用方法见后面的ls命令
drwxr-xr-x 2 root root 6 Oct 22 22:00 dir1      #建立该目录默认权限为755
[root@1-230 ~]# mkdir -m 755 dir2              #建立目录时指定755的数字权限
[root@1-230 ~]# ls -ld dir2
drwxr-xr-x 2 root root 6 Oct 22 22:00 dir2      #能够看到权限已经发生变化了

              提示:

               有关权限的知识可参数后面的chmod命令

      案例5:技巧性范例,

        同时建立多个目录及多级子目录。

              在生产环境中,经常须要建立目录用来存放文件,若是同时建立多个目录而且每一个目录下可能还有不少个子目录,哪就须要执行屡次mkdir命令,这种作法比较不妥,事实上,咱们能够使用mkdir命令同时建立多个多级目录,具体命令操做以下:

[root@1-230 ~]# mkdir -pv aa/{dir1_1,dir1_2}/{dir2_1,dir2_2}       #大括号{} 里用逗号分隔
mkdir: created directory 'aa'
mkdir: created directory 'aa/dir1_1'
mkdir: created directory 'aa/dir1_1/dir2_1'
mkdir: created directory 'aa/dir1_1/dir2_2'
mkdir: created directory 'aa/dir1_2'
mkdir: created directory 'aa/dir1_2/dir2_1'
mkdir: created directory 'aa/dir1_2/dir2_2'

 

[root@1-230 ~]# tree -d aa/         #上面建立的目录命令所对应的目录结构以下。
aa/
|-- dir1_1
| |-- dir2_1
| `-- dir2_2
`-- dir1_2
|-- dir2_1
`-- dir2_2

6 directories

 

 

[root@1-230 ~]# mkdir -p cc/dir1_{1..3}/dir2_{1..3}/dir3_{a..c}          #{1..3} 以及 {a..c}表示序列
[root@1-230 ~]# tree -d cc/
cc/
|-- dir1_1
| |-- dir2_1
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| |-- dir2_2
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| `-- dir2_3
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
|-- dir1_2
| |-- dir2_1
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| |-- dir2_2
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| `-- dir2_3
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
`-- dir1_3
|-- dir2_1
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
|-- dir2_2
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
`-- dir2_3
|-- dir3_a
|-- dir3_b
`-- dir3_c

39 directories

[root@1-230 ~]# mkdir -p bb/dir1{1..3}/dir2{1..3}/dir3{a..c}      #
[root@1-230 ~]# tree -d bb/
bb/
|-- dir11
| |-- dir21
| | |-- dir3a
| | |-- dir3b
| | `-- dir3c
| |-- dir22
| | |-- dir3a
| | |-- dir3b
| | `-- dir3c
| `-- dir23
| |-- dir3a
| |-- dir3b
| `-- dir3c
|-- dir12
| |-- dir21
| | |-- dir3a
| | |-- dir3b
| | `-- dir3c
| |-- dir22
| | |-- dir3a
| | |-- dir3b
| | `-- dir3c
| `-- dir23
| |-- dir3a
| |-- dir3b
| `-- dir3c
`-- dir13
|-- dir21
| |-- dir3a
| |-- dir3b
| `-- dir3c
|-- dir22
| |-- dir3a
| |-- dir3b
| `-- dir3c
`-- dir23
|-- dir3a
|-- dir3b
`-- dir3c

39 directories

        扩展知识:

          大括号( { } )的特殊用法。

          在{ } 中使用逗号分隔多个字符或单词时,使用echo命令能够将这些被分隔的字符或单词分别输出到屏幕上,示例以下:

[root@1-230 ~]# echo {a,c}           #会输出a  c到屏幕上。
a c

          若是{ }前有字符时,输出结果以下:

[root@1-230 ~]# echo 1{2,3}
12 13
[root@1-230 ~]# echo 1{,3}   #若是逗号前面什么都没有,能够认为是一个空字符串。
1 13

  三、生产案例

    案例1:克隆目录结构

[root@1-230 ~]# tree -fid --noreport cc            #显示全部目录树,--noreport不显示最后一行统计信息,也能够用find命令输出下面的目录树。
cc
cc/dir1_1
cc/dir1_1/dir2_1
cc/dir1_1/dir2_1/dir3_a
cc/dir1_1/dir2_1/dir3_b
cc/dir1_1/dir2_1/dir3_c
cc/dir1_1/dir2_2
cc/dir1_1/dir2_2/dir3_a
cc/dir1_1/dir2_2/dir3_b
cc/dir1_1/dir2_2/dir3_c
cc/dir1_1/dir2_3
cc/dir1_1/dir2_3/dir3_a
cc/dir1_1/dir2_3/dir3_b
cc/dir1_1/dir2_3/dir3_c
cc/dir1_2
cc/dir1_2/dir2_1
cc/dir1_2/dir2_1/dir3_a
cc/dir1_2/dir2_1/dir3_b
cc/dir1_2/dir2_1/dir3_c
cc/dir1_2/dir2_2
cc/dir1_2/dir2_2/dir3_a
cc/dir1_2/dir2_2/dir3_b
cc/dir1_2/dir2_2/dir3_c
cc/dir1_2/dir2_3
cc/dir1_2/dir2_3/dir3_a
cc/dir1_2/dir2_3/dir3_b
cc/dir1_2/dir2_3/dir3_c
cc/dir1_3
cc/dir1_3/dir2_1
cc/dir1_3/dir2_1/dir3_a
cc/dir1_3/dir2_1/dir3_b
cc/dir1_3/dir2_1/dir3_c
cc/dir1_3/dir2_2
cc/dir1_3/dir2_2/dir3_a
cc/dir1_3/dir2_2/dir3_b
cc/dir1_3/dir2_2/dir3_c
cc/dir1_3/dir2_3
cc/dir1_3/dir2_3/dir3_a
cc/dir1_3/dir2_3/dir3_b
cc/dir1_3/dir2_3/dir3_c

[root@1-230 ~]# tree -fid --noreport cc >> ~/cc.test          #将目录树内容追加到家目录下的cc.txt文件里
[root@1-230 ~]# cd /tmp/
[root@1-230 tmp]# mkdir -p `cat ~/cc.test`              #mkdir命令后面能够接不少目录名称批量建立目录,可是若是将全部目录都放在mkdir命令后面势必会致使命令太长,所以这里采用了一个巧妙的用法,使用了一对反引号(在键盘ESC下方),反引内部使用cat命令读取~(家目录下的cc.txt文件内容, 这个文件内容就包含了全部的目录名称。最后你们要知道的是,一个命令语句中若是反引号包含的命令,那么须要优先执行反引号中的命令语句,就像本例应先执行cat命令,而后执行mkdir命令,cat命令使用方法见cat命令)
[root@1-230 tmp]# tree -d /tmp/cc             #查看上述命令操做结果
/tmp/cc
|-- dir1_1
| |-- dir2_1
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| |-- dir2_2
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| `-- dir2_3
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
|-- dir1_2
| |-- dir2_1
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| |-- dir2_2
| | |-- dir3_a
| | |-- dir3_b
| | `-- dir3_c
| `-- dir2_3
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
`-- dir1_3
|-- dir2_1
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
|-- dir2_2
| |-- dir3_a
| |-- dir3_b
| `-- dir3_c
`-- dir2_3
|-- dir3_a
|-- dir3_b
`-- dir3_c

39 directories

相关文章
相关标签/搜索