mkdir コマンド

指定した名前のディレクトリを作成します。

概要

mkdir コマンドはファイルシステム内に新しいディレクトリを作成します。一度に単一または複数のディレクトリを作成でき、必要に応じて親ディレクトリを自動的に作成することもできます。デフォルトでは、ディレクトリはユーザーのumask設定に基づいた権限で作成されます。

オプション

-p, --parents

必要に応じて親ディレクトリを作成します。既に存在する場合はエラーになりません。

$ mkdir -p projects/website/css

-m, --mode=MODE

作成するディレクトリのファイルモード(権限)を設定します。

$ mkdir -m 755 secure_folder

-v, --verbose

作成した各ディレクトリについてメッセージを表示します。

$ mkdir -v new_folder
mkdir: created directory 'new_folder'

-Z, --context=CTX

作成した各ディレクトリのSELinuxセキュリティコンテキストをCTXに設定します。

$ mkdir -Z new_folder

使用例

一度に複数のディレクトリを作成する

$ mkdir docs images videos
$ ls
docs  images  videos

親ディレクトリの作成を伴うネストしたディレクトリの作成

$ mkdir -p projects/webapp/src/components
$ ls -R projects
projects:
webapp

projects/webapp:
src

projects/webapp/src:
components

特定の権限を持つディレクトリの作成

$ mkdir -m 700 private_data
$ ls -l
total 4
drwx------  2 user  user  4096 May  5 10:30 private_data

ヒント:

ネストしたディレクトリには -p を使用する

-p オプションはディレクトリ構造を作成する際に非常に便利です。必要な親ディレクトリをすべて作成し、ディレクトリが既に存在する場合もエラーになりません。

作成時に権限を設定する

ディレクトリを作成してから chmod で権限を変更するのではなく、-m オプションを使用して作成時に権限を設定しましょう。

複数のディレクトリを効率的に作成する

一つのコマンドで複数のディレクトリを作成できます: mkdir dir1 dir2 dir3

関連ディレクトリにはブレース展開を使用する

bashのブレース展開と組み合わせて関連ディレクトリを作成できます: mkdir -p project/{src,docs,tests}

よくある質問

Q1. 特定の権限を持つディレクトリを作成するにはどうすればよいですか?

A. mkdir -m MODE ディレクトリ名 を使用します。例えば、mkdir -m 755 my_dir は、所有者に読み取り、書き込み、実行権限を、グループとその他のユーザーには読み取りと実行権限を持つディレクトリを作成します。

Q2. 複数のネストしたディレクトリを一度に作成するにはどうすればよいですか?

A. mkdir -p 親/子/孫 を使用します。-p オプションは必要なすべての親ディレクトリを作成します。

Q3. 既に存在するディレクトリを作成しようとするとどうなりますか?

A. -p オプションなしでは、mkdir はエラーを返します。-p オプションを付けると、エラーなく静かに続行します。

Q4. 作成されているディレクトリを確認することはできますか?

A. はい、-v(verbose)オプションを使用すると、作成された各ディレクトリについてのメッセージが表示されます。

参考資料

https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocation.html

改訂履歴