mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
1. 创建一个空目录
[yalishanda@bogon Documents]$ ls a oldboy [yalishanda@bogon Documents]$ mkdir a mkdir: cannot create directory ‘a’: File exists [yalishanda@bogon Documents]$ mkdir ssss [yalishanda@bogon Documents]$ ll total 0 drwxrwxr-x. 3 yalishanda yalishanda 14 Nov 14 22:31 a drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 14 22:31 oldboy drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 15 16:38 ssss [yalishanda@bogon Documents]$
2.递归创建多个目录
[yalishanda@bogon Documents]$ pwd
/home/yalishanda/Documents
[yalishanda@bogon Documents]$ tree
.
├── a
│ └── b
│ └── c
├── oldboy
└── ssss
5 directories, 0 files
[yalishanda@bogon Documents]$ mkdir -p bll/son
[yalishanda@bogon Documents]$ tree
.
├── a
│ └── b
│ └── c
├── bll
│ └── son
├── oldboy
└── ssss
7 directories, 0 files
[yalishanda@bogon Documents]$
3.创建权限为777的文件
[yalishanda@bogon Documents]$ pwd
/home/yalishanda/Documents
[yalishanda@bogon Documents]$ ls -l
total 0
drwxrwxr-x. 3 yalishanda yalishanda 14 Nov 14 22:31 a
drwxrwxr-x. 3 yalishanda yalishanda 16 Nov 15 16:40 bll
drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 14 22:31 oldboy
drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 15 16:38 ssss
[yalishanda@bogon Documents]$ mkdir -m tests
mkdir: missing operand
Try 'mkdir --help' for more information.
[yalishanda@bogon Documents]$ mkdir -m 777 tests
[yalishanda@bogon Documents]$ ls -l
total 0
drwxrwxr-x. 3 yalishanda yalishanda 14 Nov 14 22:31 a
drwxrwxr-x. 3 yalishanda yalishanda 16 Nov 15 16:40 bll
drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 14 22:31 oldboy
drwxrwxr-x. 2 yalishanda yalishanda 6 Nov 15 16:38 ssss
drwxrwxrwx. 2 yalishanda yalishanda 6 Nov 15 16:42 tests
[yalishanda@bogon Documents]$
r[read读]---4
w[write写]---2
x[excute执行]---1
-[应该是咩有相关权限]---0
rwxrwxrwx是三位一组,即:rwx[4+2+1=7]rwx[4+2+1=7]rwx[4+2+1=7]
tests 文件夹的权限是 rwxrwxrwx[即777]
oldboy文件夹的权限是 rwxrwxr-x[即775]
4.创建新目录都显示信息
[yalishanda@bogon Documents]$ tree
.
├── a
│ └── b
│ └── c
├── bll
│ └── son
├── oldboy
├── ssss
└── tests
8 directories, 0 files
[yalishanda@bogon Documents]$ mkdir -v fff
mkdir: created directory ‘fff’
[yalishanda@bogon Documents]$ mkdir -vp ggg/zhus
mkdir: created directory ‘ggg’
mkdir: created directory ‘ggg/zhus’
[yalishanda@bogon Documents]$
5.创建目录树
坏习惯
~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
使用 mkdir
的 -p
选项并在单个命令中创建所有父目录及其子目录要容易得多。但是即使对于知道此选项的管理员,他们在命令行上创建子目录时也仍然束缚于逐步创建每级子目录。花时间有意识地养成这个好习惯是值得的:
好习惯 1 的示例:使用一个命令来定义目录树
~ $ mkdir -p tmp/a/b/c
好习惯 1 的另一个示例:使用一个命令来定义复杂的目录树
[yalishanda@bogon Documents]$ tree
.
├── a
│ └── b
│ └── c
├── bll
│ └── son
├── fff
├── ggg
│ └── zhus
├── oldboy
├── ssss
└── tests
11 directories, 0 files
[yalishanda@bogon Documents]$ clsar
bash: clsar: command not found...
[yalishanda@bogon Documents]$ clear
[3;J
[yalishanda@bogon Documents]$ mkdir -vp project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
mkdir: created directory ‘project’
mkdir: created directory ‘project/lib’
mkdir: created directory ‘project/lib/ext’
mkdir: created directory ‘project/bin’
mkdir: created directory ‘project/src’
mkdir: created directory ‘project/doc’
mkdir: created directory ‘project/doc/html’
mkdir: created directory ‘project/doc/info’
mkdir: created directory ‘project/doc/pdf’
mkdir: created directory ‘project/demo’
mkdir: created directory ‘project/demo/stat’
mkdir: created directory ‘project/demo/stat/a’
[yalishanda@bogon Documents]$ tree
.
├── a
│ └── b
│ └── c
├── bll
│ └── son
├── fff
├── ggg
│ └── zhus
├── oldboy
├── project
│ ├── bin
│ ├── demo
│ │ └── stat
│ │ └── a
│ ├── doc
│ │ ├── html
│ │ ├── info
│ │ └── pdf
│ ├── lib
│ │ └── ext
│ └── src
├── ssss
└── tests
23 directories, 0 files
[yalishanda@bogon Documents]$