Linuxコマンド mkdir(ディレクトリを作成する)
指定したディレクトリ名でディレクトリを作成するmkdirコマンドの解説
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
使用方法
mkdirの後にディレクトリ名を指定することでディレクトリを作成することができる。ディレクトリ名(引数)にしたディレクトリがすでに存在する場合は、ディレクトリは作成されません。
デフォルトで作成されたディレクトリのパーミッションは、0777(rwxrwxrwx)から設定されたumask値(許可しないビット値)を引いたものが付けられる。デフォルトは、022(umask)が設定されているので、0755(rwx-rx-rx)がセットされる。実際のumaskの設定は、umaskコマンドで調べることができる。
ディストリビューション | 管理者 | 一般ユーザ |
---|---|---|
RHEL | 0022 | 0022 |
CentOS | 0022 | 0002 |
Vine Linux | 0022 | 0022 |
Ubuntu | 0022 | 0002 |
Debian GNU/Linux | 0022 | 0022 |
Plamo Linux | 0022 | 0022 |
ただし、ディストリビューションごとにパーミッションの初期値は異なるため、必ずしも上記のような結果にはならない。
書式
$ mkdir [オプション] ディレクトリ名・・・
-m モード, –mode=権限 | 指定したディレクトリを作成する |
-p, –parents | 親ディレクトリが無ければ作成する |
-v, -verbose | ディレクトリ作成時にメッセージを表示する |
サンプル
$ mkdir tmp
実行結果
[testuser@ ~]$ ls -lF
total 8
-rw-rw-r-- 1 testuser testuser 6 Apr 7 19:34 sample1.txt
-rw-rw-r-- 1 testuser testuser 6 Apr 7 19:35 sample2.txt
[testuser@ ~]$ mkdir tmp
[testuser@ ~]$ ls -lF
total 12
-rw-rw-r-- 1 testuser testuser 6 Apr 7 19:34 sample1.txt
-rw-rw-r-- 1 testuser testuser 6 Apr 7 19:35 sample2.txt
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:56 tmp/
[testuser@ ~]$
1回のコマンドで複数ディレクトリを作成する。
2個、3個・・・スペース(半角空白)で区切って、ディレクトリ名を連記することで、1回のmkdirコマンドで複数のディレクトリを一度に作成することができる。
サンプル
$ mkdir tmp1 tmp2
実行結果
[testuser@ sample]$ ls -lF
total 0
[testuser@ sample]$ mkdir tmp1 tmp2
[testuser@ sample]$ ls -lF
total 8
drwxrwxr-x 2 testuser testuser 4096 Apr 15 06:37 tmp1/
drwxrwxr-x 2 testuser testuser 4096 Apr 15 06:37 tmp2/
[testuser@ sample]$
ディレクトリ作成時にパーミッションを付加する
tmpディレクトリ作成と同時に500(r-x—-)のパーミッションを付加する。
サンプル
$ mkdir -m 500 tmp
実行結果
[testuser@engraku ~]$ ls -lF
total 0
[testuser@engraku ~]$ mkdir -m 500 tmp
[testuser@engraku ~]$ ls -lF
total 4
dr-x------ 2 testuser testuser 4096 Apr 15 06:51 tmp/
[testuser@engraku ~]$
カレントディレクトリ内に階層ディレクトリを作成する。
カレントディレクトリ内に、work/installという階層ディレクトリを作成する。この段階でworkディレクトリは存在しない。
サンプル
$ mkdir -p work/install
実行結果
[testuser@ ~]$ ls -lF
total 0
[testuser@ ~]$ mkdir -p work/install
[testuser@ ~]$ tree
.
└── work
└── install
2 directories, 0 files
[testuser@ ~]$
連番のディレクトリを作成する
01~12までの連番のディレクトリを1コマンドで作成する。{}のまでに西暦を付加することで、西暦+月のディレクトリを1回のコマンドで作成できる。
サンプル
$ mkdir {01..12}
$ mkdir 2020{01..12} #年月ディレクトリを一括で作成できる。
実行結果
[testuser@ work]$ mkdir {01..12}
[testuser@ work]$ tree
.
├── 01
├── 02
├── 03
├── 04
├── 05
├── 06
├── 07
├── 08
├── 09
├── 10
├── 11
└── 12
12 directories, 0 files
[testuser@ work]$ ls -lF
total 48
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 01/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 02/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 03/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 04/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 05/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 06/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 07/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 08/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 09/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 10/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 11/
drwxrwxr-x 2 testuser testuser 4096 Apr 14 20:44 12/
[testuser@ work]$