前の記事では、 cp・mv・rmコマンドを使ってFileをCopy・移動・削除する方法 を学びました。
今回は、 Fileを入れるための Directoryそのものを作成・削除する方法 を学習します。
mkdir
Make Directory
Directoryを作成
rmdir
Remove Directory
空Directoryを削除
不要になった空Directoryを削除したい。
そんなときに使うのがmkdirとrmdirです。
mkdirでDirectoryを作成し、 mkdir -pで階層ごと作成し、 rmdirで空のDirectoryを削除できる ようになることを目指します。
ディレクトリとは?
Directoryは、 Fileや他のDirectoryを整理して格納するための入れ物 です。
Windowsでいう「Folder」とほぼ同じイメージで考えて問題ありません。
Linuxでは、 こうしたDirectoryをCommandで作成・削除できます。
mkdirコマンド:ディレクトリを作成する
mkdirは、 新しいDirectoryを作成するCommandです。
基本形は次の通りです。
mkdir ディレクトリ名
たとえば、
work
というDirectoryを作成したい場合、
$ mkdir work
と実行します。
sample.txt
sample.txt
work/
その後、
ls
で確認すると、
$ ls
sample.txt work
新しいDirectoryが作成されたことを確認できます。
mkdirでは複数のディレクトリをまとめて作成できる
mkdirでは、 複数のDirectory名を続けて指定できます。
mkdir test backup logs
$ mkdir test backup logs
$ ls
backup logs test
このように、 一度に複数のDirectoryを作成できます。
パスを指定してディレクトリを作成する
Directory名だけでなく、 Pathを指定して作成することもできます。
mkdir /home/user/work
これは、
/home/user
の中に
work
Directoryを作成する指定です。
前の記事で学んだPathの考え方は、 cdだけでなくmkdirやcp、mvなど多くのCommandで共通して利用します。
存在しない親ディレクトリの下にはそのまま作れない
次のようなDirectoryを作りたいとします。
mkdir project/web/logs
しかし、
project
や
project/web
がまだ存在しない場合、
通常はErrorになります。
$ mkdir project/web/logs
mkdir: cannot create directory 'project/web/logs': No such file or directory
これは、 途中の親Directoryが存在していない ためです。
mkdir -pで階層ごと作成する
そこで便利なのが -p Optionです。
mkdir -p project/web/logs
と実行すると、 途中に必要なDirectoryもまとめて作成できます。
$ mkdir -p project/web/logs
$ ls project
web
深いDirectory構造を一度に作成できるため、 ScriptやServer構築でもよく利用されます。
rmdirコマンド:空のディレクトリを削除する
rmdirは、 空のDirectoryを削除するCommandです。
rmdir ディレクトリ名
たとえば、
空の
test
Directoryを削除する場合、
$ rmdir test
と実行します。
backup/
test/
backup/
rmdirでは中身のあるディレクトリは削除できない
rmdirの重要な特徴は、 空Directoryだけを削除する という点です。
たとえば、
のようにFileが入っている場合、
$ rmdir work
rmdir: failed to remove 'work': Directory not empty
とErrorになります。
中身が存在すると削除できないため、 誤ってFileごと消すリスクを抑えられます。
中身ごとディレクトリを削除するrm -rとの違い
中身のあるDirectoryを削除するときには、
rm -r
を使うことがあります。
rmdir work
rm -r work
Directoryの中にFileやSub Directoryがあっても削除できるため、 誤ったPathを指定すると大きな影響が出る可能性があります。
rmdir -pで空の親ディレクトリもまとめて削除できる
次のように、 すべて空のDirectory構造があるとします。
この場合、
rmdir -p project/web/logs
とすると、
条件を満たせば
logs、
web、
project
まで順番に削除できます。
rmdir -pも存在しますが、 まずは mkdir -pで階層作成、rmdirで空Directory削除 を確実に理解しましょう。
ディレクトリ操作もlsで前後を確認する
File操作と同じように、 Directory操作でも前後確認が重要です。
pwd
現在位置を確認
ls
現在の状態を確認
mkdir / rmdir
Directoryを操作
ls
結果を確認
ここで実際に試してみよう:ディレクトリ作成・削除シミュレーター
疑似Terminalで
mkdir・rmdir
を実行して、
Directory Treeがどう変化するか確認してみましょう。
Linux Directory Operation Simulator
まずlsで現在のDirectoryを確認しましょう
mkdirを実行するとDirectoryが増え、空のDirectoryならrmdirで削除できます。
理解度チェック:このコマンドを実行するとどうなる?
現在、
project
Directoryは存在していません。
mkdir -p project/web/logs
実行結果として正しいものはどれでしょうか?
-p Optionの役割を思い出しましょう。
Directoryがすでに存在するとどうなる?
同じ名前のDirectoryがすでに存在している状態で、 通常のmkdirを実行するとErrorになります。
$ mkdir work
mkdir: cannot create directory 'work': File exists
この場合は、
ディレクトリを作れたら、次はファイルの中身を確認しよう
ここまでで、 FileやDirectoryを 作る・移動する・削除する 基本操作を学びました。
しかしLinux Serverを管理するときは、 設定FileやLog Fileなどの 中身を読む 場面も非常に多くあります。
長いLogを少しずつ読みたい。
最初や最後の数行だけ確認したい。
そんなときはどのCommandを使えばよいのでしょうか?
確認問題:mkdir・rmdirを理解できたか確認しよう
新しいDirectoryを作成するCommandはどれですか?
mkdirはMake Directoryの名前通り、 新しいDirectoryを作成するCommandです。
存在しない親Directoryも含めて階層を作成したい場合に使うのはどれですか?
mkdir -pを利用すると、 必要な親Directoryも含めて階層を作成できます。
rmdirで削除できるDirectoryはどれですか?
rmdirは基本的に空のDirectoryを削除するCommandです。
3問に挑戦してみましょう。
まとめ
mkdirは
新しいDirectoryを作成する
Command
mkdirでは 複数Directoryを一度に作成 することもできる
mkdir -pを使うと
存在しない親Directoryも含めて階層作成
できる
rmdirは
空のDirectoryを削除する
Command
中身ごと削除できる
rm -rは強力なので、
Pathと対象をよく確認してから使う
ことが重要
次は「cat・less・head・tailでファイル内容を確認する」を学びましょう
mkdir・rmdirを使って、 Directoryを作成・削除する方法を学びました。
次は、 Linux Serverを管理するうえで非常に重要な File内容の確認 に進みます。
catでFile全体を表示し、
lessで長いFileを確認し、
head・tailで
先頭・末尾を確認する方法を学習します。

