InfraAcademy

InfraAcademy Blog

【Linux】mkdirコマンドの使い方解説!ディレクトリを作成するコマンド

| #Linux #コマンド
Linuxをブラウザで試してみる

Linux・ネットワーク・AWSを、環境構築なしで実践学習できます

こんにちは、フルスタックエンジニアのryuです。

今回は、Linuxのmkdirコマンドについて解説します。

mkdirは、新しいディレクトリを作成するための基本的なLinuxコマンドです。この記事では、基本構文から複数ディレクトリの作成、絶対パス・相対パス、よくあるエラーまで初心者向けに解説します。

【Linux】mkdirコマンドの使い方解説

mkdirとは?

mkdirは、Make Directoryの略で、新しいディレクトリを作成するコマンドです。

基本的な書き方は次の通りです。

mkdir [ディレクトリ名]

例えば、現在いるディレクトリの中にtestdirというディレクトリを作成する場合は、次のように実行します。

mkdir testdir

作成できたか確認してみましょう。

ls

実行結果にtestdirが表示されれば成功です。

testdir

mkdirで作成される場所を確認する

mkdir testdirと実行した場合、どこにディレクトリが作成されるのでしょうか。

答えは、現在いるディレクトリの中です。

現在のディレクトリはpwdコマンドで確認できます。

pwd

例えば、次のように表示されたとします。

/home/ryu

この状態で、

mkdir testdir

と実行すると、作成される場所は次の通りです。

/home/ryu/testdir
pwd
mkdir testdir
ls -la

【関連記事】現在いる場所を確認する方法は、pwdコマンドの使い方解説!カレントディレクトリを表示するコマンドでも詳しく解説しています。

絶対パスを指定してディレクトリを作成する

mkdirでは、ディレクトリ名だけではなくパスを指定できます。

例えば、/tmpの中にpracticeというディレクトリを作成する場合は次の通りです。

mkdir /tmp/practice

/tmp/practiceのように、/から始まるパスを絶対パスと呼びます。

一方、現在地を基準に、

mkdir practice

のように指定する方法は相対パスです。

【関連記事】絶対パスと相対パスとは?ファイルパスを理解する!

mkdirコマンドの主なオプション

mkdirでは、オプションを付けることでさまざまな作り方ができます。

よく使うものを整理すると次の通りです。

オプション 説明
-p, --parents 必要な親ディレクトリもまとめて作成する
-m, --mode=MODE 作成時の権限を指定する
-v, --verbose 作成したディレクトリを表示する
--help ヘルプを表示する
--version バージョンを表示する

初心者の方は、まず-pを覚えておくと便利です。

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

mkdirでは、複数のディレクトリをまとめて作成できます。

mkdir dir1 dir2 dir3

実行後に確認します。

ls

次のように3つのディレクトリが表示されます。

dir1
dir2
dir3

mkdir -pで親ディレクトリも一緒に作成する

mkdirで特によく使うのが-pオプションです。

例えば、次のような階層を一度に作りたいとします。

project
└── src
    └── app

まだprojectsrcも存在しない状態で、次のコマンドを実行するとエラーになります。

mkdir project/src/app
mkdir: cannot create directory 'project/src/app': No such file or directory

途中の親ディレクトリが存在しないためです。

そこで-pを付けます。

mkdir -p project/src/app

これで、projectsrcappをまとめて作成できます。

確認する場合は、環境によってtreeコマンドが利用できれば次のように確認できます。

tree project

treeが入っていない場合は、findなどでも確認できます。

find project -type d

mkdir -pは、シェルスクリプトや環境構築でもよく使うため覚えておきましょう。

すでに存在するディレクトリへmkdirするとどうなる?

例えば、すでにtestdirがある状態で次のコマンドを実行します。

mkdir testdir

すると、次のようなエラーになります。

mkdir: cannot create directory 'testdir': File exists

すでに同じ名前のディレクトリが存在しているためです。

一方、-pを付けて、

mkdir -p testdir

と実行した場合、既存のtestdirがディレクトリであれば通常はエラーになりません。

mkdir -mで権限を指定して作成する

ディレクトリを作成するときに権限も指定したい場合は、-mを利用できます。

mkdir -m 755 testdir

作成後に確認します。

ls -ld testdir

環境によって次のように表示されます。

drwxr-xr-x 2 ryu ryu 4096 Aug 28 09:00 testdir

755は、所有者に読み取り・書き込み・実行、グループとその他のユーザーに読み取り・実行を許可する設定です。

権限を指定せずにmkdirした場合は、基本となる権限からumaskの設定を反映して最終的な権限が決まります。

ディレクトリ作成後に権限を変更する場合はchmodを使います。

chmod 755 testdir

【関連記事】【初心者向け】Linuxのファイル権限について徹底解説

mkdir -vで作成したディレクトリを確認する

何を作成したのか画面に表示したい場合は、-vを使えます。

mkdir -v dir1 dir2

環境によって次のように表示されます。

mkdir: created directory 'dir1'
mkdir: created directory 'dir2'

-pと組み合わせることもできます。

mkdir -pv project/src/app

複数階層を作るときに、どのディレクトリが作成されたのか確認しやすくなります。

Permission deniedと表示される場合

mkdirを実行したときに、次のようなエラーが出ることがあります。

mkdir: cannot create directory 'testdir': Permission denied

これは、現在のユーザーにその場所へディレクトリを作成する権限がない可能性があります。

例えば、一般ユーザーで/etc配下へ作成しようとすると、通常は権限が不足します。

mkdir /etc/testdir

まず、

pwd
ls -ld .

などで現在地と権限を確認し、本当に管理者権限が必要な操作なのか判断しましょう。

自分のホームディレクトリ内で練習するだけなら、通常はsudoは必要ありません。

cd ~
mkdir practice

ディレクトリ名にスペースがある場合

Linuxでは、スペースを含む名前のディレクトリも作成できます。

ただし、次のように書くと、

mkdir test dir

testdirという2つのディレクトリが作成されます。

test dirという1つのディレクトリを作りたい場合は、引用符で囲みます。

mkdir "test dir"

または、スペースをエスケープします。

mkdir test\ dir

mkdirで作成したディレクトリを削除する

空のディレクトリを削除する場合は、rmdirを利用できます。

rmdir testdir

ただし、rmdirで削除できるのは基本的に空のディレクトリです。

中にファイルがある場合はエラーになります。

rmdir: failed to remove 'testdir': Directory not empty

ファイルを含むディレクトリを削除する場合はrm -rを使うことがあります。

rm -r testdir

ただし、rm -rはディレクトリ内のファイルもまとめて削除するため、実行前に対象をよく確認してください。

【関連記事】Linuxでディレクトリを削除するコマンドrmdirの使い方を詳しく解説

mkdirを実際に練習してみる

ここまで読んだら、ホームディレクトリなど安全な場所で実際に試してみましょう。

まず練習用ディレクトリを作成します。

cd ~
mkdir mkdir-practice
cd mkdir-practice

複数のディレクトリを作ります。

mkdir dir1 dir2 dir3

次に階層をまとめて作成します。

mkdir -p project/src/app

権限を指定して作成します。

mkdir -m 755 public

最後に確認します。

find . -type d

mkdirコマンドまとめ

今回はmkdirコマンドについて解説しました。

基本はとてもシンプルです。

mkdir testdir

複数のディレクトリを一度に作ることもできます。

mkdir dir1 dir2 dir3

親ディレクトリを含めてまとめて作成する場合は、-pを使います。

mkdir -p project/src/app

特にLinuxを学び始めた方は、mkdirだけを暗記するのではなく、pwdで現在地を確認し、lsで作成結果を確認し、cdで移動するところまでセットで練習してみてください。

さらにLinuxのコマンドの学習をしたい人に向けて、InfraAcademyというインフラ学習サービスのご紹介です。

「Linuxの実践的な内容を学習したい」、「コマンドを打ちながらLinuxを学習したい」

そのような方は、Linux入門講座から学習できます。

↓InfraAcademyの講座の一部です。

上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。

インフラエンジニアに必要な知識が学習できます。

InfraAcademyで学習を始める

参考:Linuxのコマンド練習用サイトのInfraAcademyを作成しました。【Linuxのコマンドをブラウザで練習しよう】

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る