mkdir:命令

  1、命令详解

    【功能说明】

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

    【语法格式】

  mkdir    [option]    [directory]

  mkdir  [选项]       [目录]

    【选项说明】

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

  2、使用案例

    1、基础范例

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

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

  [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

  3、生产案例

    案例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

mkdir:创建目录的更多相关文章

  1. IOS使用mkdir创建目录

    在IOS真机上可以创建目录的位置只有两个Documents和Caches,如果直接在NSHomeDirectory()上创建目录,会失败,返回的errno含义为操作被禁止. 获取Caches中的一个目 ...

  2. mkdir创建目录时,如果上级目录没有是创建不成功的

    mkdir创建目录时,如果上级目录没有是创建不成功的 ,此时必须用 mkdirs()方法方可.

  3. mkdir创建目录

    mkdir:make directories(创建目录) 创建目录的首要条件:在当前目录或者欲创建目录下,该用户具有写入权限,mkdir详细功能如下: 1.mkdir不接任何参数时,即mkdir di ...

  4. Linux 命令 - mkdir: 创建目录

    命令格式 mkdir [OPTION]... DIRECTORY... 命令参数 -m, --mode=MODE 设置文件的模式,类似于 chmod 命令. -p, --parents 需要时创建指定 ...

  5. mkdir 创建目录

    短选项 长选项 含义 -m <目录属性> --mode <目录属性> 建立目录时同时设置目录的权限. -p --parents 此选项后,可以是一个路径名称.若路径中的某些目录 ...

  6. 常用命令ls cd cp mv touch mkdir pwd rm cut sort tr more less

    ls  -ldhtai 显示目录下面的文件 ls -l 显示详细信息 ls -d 显示当前目录 ls -t 以时间先后顺序显示 ls -a 列出所有文件包括隐藏文件 ls -i 显示文件的inode号 ...

  7. 一个字母引发的血案 java.io.File中mkdir()和mkdirs()

    一个字母引发的血案 明天开始放年假了,临放假前有个爬虫的任务,其中需要把网络图片保存到本地,很简单,马上写完了代码: //省略部分代码... Long fileId= (Long) data.get( ...

  8. linux 学习之路:mkdir命令使用

    linux mkdir 命令 在当前目录下创建文件夹,当前账号需要保证目录下有写到权限. 1.命令格式 mkdir[选项]文件名 mkdir  创建目录文件 语法:mkdir [ -m Mode ] ...

  9. php mkdir No such file or director问题

    有时使用mkdir创建目录时会出现 No such file or director这样的错误,导致这个错误的原是 比如你要创建目录 a\b\c目录,但是创建时父目录b也不存在时就会出现这样的问题. ...

  10. 相对和绝对路径 mkdir cd rm 等命令

     1. 绝对路径和相对路径    个人理解: 绝对路径-----即从根目录开始一直到你需要找的文件或目录的路径 (即任何情况下都以根目录为起点) 相对路径------即从当前目录开始一直找到你需要找的 ...

随机推荐

  1. 获取url地址

    用JS获取地址栏参数的方法(超级简单) 采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  2. Python内置的字符串处理函数

    生成字符串变量 str='python String function'   字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 连接字符 ...

  3. Codeforces Round #332 (Div. 2) B. Spongebob and Joke 模拟

    B. Spongebob and Joke     While Patrick was gone shopping, Spongebob decided to play a little trick ...

  4. 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(二)

    GPM怎样控制菜单权限以及菜单的增删显示 因为CCOA中仅仅有属于admin才干够进行权限管理与流程设计.password为pub. 1.加入CCOA功能菜单 进入GPM后,找到编号为CCOA的信息后 ...

  5. luogu2085 最小函数值

    题目大意 有n个函数,分别为F1,F2,...,Fn.定义Fi(x)=Ai*x^2+Bi*x+Ci (x,Ai,Bi,Ci∈N*).给定这些Ai.Bi和Ci,请求出所有函数的所有函数值中最小的m个. ...

  6. zoj--3870--Team Formation(位运算好题)

    Team Formation Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Submit ...

  7. 关于Vue.js去掉#号路由

    正常启动后访问路由: 中间会自动加入一个#号 去掉#号: 在route文件夹下的index.js中加入mode: 'history', ①: ②: 关于mode说明: 默认值: ‘hash‘(浏览器) ...

  8. AOP实现参数的判空问题

    不想每次都去判断必传的参数是否为空,写代码太繁琐了,正好最近用了AOP实现权限控制,依葫芦画瓢,现在用它实现参数的判空,至于AOP的原理之类,自己百度了解一下吧 1. NullDisable注解 @D ...

  9. javaweb 课程设计编码和设计文档

    企业办公软件设计文档 1引言 1.1编写目的 OA办公自动化系统详细设计是设计的第三个阶段,这个阶段的主要任务是在OA办公自动化系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模 ...

  10. Stick ------ 剪枝神题

    这个是自己剪得 , 我感觉已经很不错了  但是不知道哪里出了问题  一直  超时 // 根据所给答案 和 题目要求 最直观的就可以有剪枝的地方 而且 剪枝剪得越早 就越省时省力 // 好的思路也可以省 ...