【Linux】mkdirコマンドで新しいディレクトリを作成する

目次

概要

mkdir(make directory)は、新しいディレクトリ(Windowsでいうフォルダ)を作成するための基本コマンドです。

単に箱を作るだけでなく、深い階層のディレクトリを一発で作成したり、作成と同時にアクセス権限(パーミッション)を設定したりすることができます。GUIでのフォルダ作成に比べて、スクリプト内での自動化や大量のフォルダ生成において圧倒的な効率を発揮します。

仕様(引数・オプション)

構文

mkdir [オプション] [ディレクトリ名...]

主なオプション

オプション説明
-p指定したパスの途中のディレクトリが存在しない場合、それらも含めて自動的に作成します(parents)。エラー回避のため常時つけることが多いオプションです。
-m [モード]ディレクトリ作成と同時に、パーミッション(権限)を指定した数値(例: 755, 700)で設定します(mode)。
-vディレクトリを作成した際に、その旨をメッセージとして表示します(verbose)。

基本の使い方

ディレクトリを作成する

最もシンプルな使い方は、作成したいディレクトリ名を指定するだけです。

mkdir workspace

実行結果イメージ:

(成功時は何も表示されません。lsコマンドで確認します)

ls -F
workspace/

実践コマンド

1. 深い階層のディレクトリを一度に作成する (-p)

通常、mkdir dir1/dir2/dir3 を実行した時、dir1dir2 が存在しないとエラーになります。-p オプションを付けると、親ディレクトリも含めて再帰的に作成してくれます。

# logsディレクトリも、その中のappディレクトリも自動作成
mkdir -p logs/app/2026

2. 複数のサブディレクトリを一括作成する(ブレース展開)

プロジェクト開始時に、決まった構成のフォルダをまとめて作りたい場合に便利です。シェルのブレース展開 {A,B,C} 機能を利用します。

# projectディレクトリの中に、src, bin, doc をまとめて作成
mkdir -p project/{src,bin,doc}

実行結果イメージ:

tree project
project
├── bin
├── doc
└── src

3. 自分だけがアクセスできるディレクトリを作成する (-m)

機密情報を扱うディレクトリを作る際、作成後に chmod コマンドを実行する手間を省けます。

# 所有者のみ読み書き・実行可能(700)なディレクトリを作成
mkdir -m 700 private_data

実行結果イメージ:

ls -ld private_data
drwx------ 2 user user 4096 Jan 16 10:00 private_data

※ ディレクトリの場合、中に入るために実行権限(x)が必要なため、ファイルのように 400 ではなく 700 を設定するのが一般的です。

カスタムポイント

  • エラー抑止としての -p:
    • -p オプションは「既にディレクトリが存在する場合もエラーを出さない」という副作用があります。スクリプト内で「無ければ作る」という処理を書きたい時に最適です。
  • 権限設定 (-m):
    • Web公開用なら -m 755、完全非公開なら -m 700 を使い分けます。

注意点

  1. ディレクトリのパーミッション:
    • ファイルと異なり、ディレクトリには 実行権限(x) がないと、cd で中に入ったり ls でファイル一覧を見たりすることができません。-m 400(読み取りのみ)で作ってしまうと、自分でも入れない「開かずのフォルダ」になります(修正には chmod が必要)。
  2. 書き込み権限:
    • ディレクトリを作成するには、その親ディレクトリに対して書き込み権限(w)を持っている必要があります。/usr/local/ 以下などに作る場合は sudo mkdir とする必要があります。

応用

日付入りのバックアップディレクトリを作成する

コマンド置換を利用して、現在の日付(YYYY-MM-DD形式)の名前のフォルダを作成します。

mkdir -p backup/$(date +%F)

まとめ

mkdirは単純なコマンドですが、-p オプションの有無で作業効率が大きく変わります。

  • 向く場面: フォルダ作成全般、スクリプトでの階層作成。
  • 変更ポイント: 階層を作るなら -p、権限設定なら -m
  • 注意点: ディレクトリには実行権限(x)が必要。

とりあえず迷ったら、エラーが出にくく便利な mkdir -p を使うのが現場の定石です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次