mkdir・rmdirコマンドでディレクトリを作成・削除する方法

  • URLをコピーしました!

前の記事では、 cp・mv・rmコマンドを使ってFileをCopy・移動・削除する方法 を学びました。

今回は、 Fileを入れるための Directoryそのものを作成・削除する方法 を学習します。

mkdir Make Directory Directoryを作成
rmdir Remove Directory 空Directoryを削除
新しい作業用Directoryを作りたい。
不要になった空Directoryを削除したい。
そんなときに使うのがmkdirとrmdirです。
🐧 LINUX BEGINNER

この記事はLinux初級講座の第6レッスンです。 Linuxを初めて学ぶ方は、講座の順番に進めていきましょう。

Linux初級講座を見る →
LESSON GOAL この記事のゴール

mkdirでDirectoryを作成し、 mkdir -pで階層ごと作成し、 rmdirで空のDirectoryを削除できる ようになることを目指します。

目次

ディレクトリとは?

Directoryは、 Fileや他のDirectoryを整理して格納するための入れ物 です。

Windowsでいう「Folder」とほぼ同じイメージで考えて問題ありません。

/home/user
├── Documents
│ ├── report.txt
│ └── memo.txt
└── Downloads

Linuxでは、 こうしたDirectoryをCommandで作成・削除できます。

mkdirコマンド:ディレクトリを作成する

mkdirは、 新しいDirectoryを作成するCommandです。

基本形は次の通りです。

mkdir ディレクトリ名

たとえば、 work というDirectoryを作成したい場合、

Linux Terminal
$ mkdir work

と実行します。

BEFORE sample.txt
→ mkdir work →
AFTER 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を作成する指定です。

mkdirも絶対Path・相対Pathの両方を使える

前の記事で学んだPathの考え方は、 cdだけでなくmkdirやcp、mvなど多くのCommandで共通して利用します。

存在しない親ディレクトリの下にはそのまま作れない

次のようなDirectoryを作りたいとします。

mkdir project/web/logs

しかし、 projectproject/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もまとめて作成できます。

project
web
logs
$ mkdir -p project/web/logs

$ ls project
web
mkdir -pは非常によく使う

深いDirectory構造を一度に作成できるため、 ScriptやServer構築でもよく利用されます。

rmdirコマンド:空のディレクトリを削除する

rmdirは、 空のDirectoryを削除するCommandです。

rmdir ディレクトリ名

たとえば、 空の test Directoryを削除する場合、

$ rmdir test

と実行します。

BEFORE backup/ test/
→ rmdir test →
AFTER backup/

rmdirでは中身のあるディレクトリは削除できない

rmdirの重要な特徴は、 空Directoryだけを削除する という点です。

たとえば、

work/
└── memo.txt

のようにFileが入っている場合、

$ rmdir work
rmdir: failed to remove 'work': Directory not empty

とErrorになります。

rmdirは「安全寄り」のDirectory削除Command

中身が存在すると削除できないため、 誤ってFileごと消すリスクを抑えられます。

中身ごとディレクトリを削除するrm -rとの違い

中身のあるDirectoryを削除するときには、 rm -r を使うことがあります。

rmdir 空Directoryだけ rmdir work
rm -r 中身ごと再帰的に削除 rm -r work
rm -rは特に慎重に使う

Directoryの中にFileやSub Directoryがあっても削除できるため、 誤ったPathを指定すると大きな影響が出る可能性があります。

rmdir -pで空の親ディレクトリもまとめて削除できる

次のように、 すべて空のDirectory構造があるとします。

project
web
logs

この場合、

rmdir -p project/web/logs

とすると、 条件を満たせば logswebproject まで順番に削除できます。

初級ではmkdir -pを優先して覚えればOK

rmdir -pも存在しますが、 まずは mkdir -pで階層作成、rmdirで空Directory削除 を確実に理解しましょう。

ディレクトリ操作もlsで前後を確認する

File操作と同じように、 Directory操作でも前後確認が重要です。

01 pwd 現在位置を確認
02 ls 現在の状態を確認
03 mkdir / rmdir Directoryを操作
04 ls 結果を確認

ここで実際に試してみよう:ディレクトリ作成・削除シミュレーター

疑似Terminalで mkdirrmdir を実行して、 Directory Treeがどう変化するか確認してみましょう。

INTERACTIVE LAB

Linux Directory Operation Simulator

DIRECTORY
CURRENT DIRECTORIES
Documents/ Downloads/
user@linux
Linux directory operation practice
ls / mkdir / mkdir -p / rmdir を試してみましょう。
user@linux:~$
TRY COMMAND

まず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

この場合は、

lsで同名Directoryがないか確認
Directory名を間違えていないか確認
作成先のPathを確認

ディレクトリを作れたら、次はファイルの中身を確認しよう

ここまでで、 FileやDirectoryを 作る・移動する・削除する 基本操作を学びました。

しかしLinux Serverを管理するときは、 設定FileやLog Fileなどの 中身を読む 場面も非常に多くあります。

cat File全体を表示
less 画面単位で確認
head 先頭を確認
tail 末尾を確認
設定Fileの中身を全部見たい。
長いLogを少しずつ読みたい。
最初や最後の数行だけ確認したい。
そんなときはどのCommandを使えばよいのでしょうか?

確認問題:mkdir・rmdirを理解できたか確認しよう

QUESTION 01

新しいDirectoryを作成するCommandはどれですか?

正解:A

mkdirはMake Directoryの名前通り、 新しいDirectoryを作成するCommandです。

QUESTION 02

存在しない親Directoryも含めて階層を作成したい場合に使うのはどれですか?

正解:C

mkdir -pを利用すると、 必要な親Directoryも含めて階層を作成できます。

QUESTION 03

rmdirで削除できるDirectoryはどれですか?

正解:B

rmdirは基本的に空のDirectoryを削除するCommandです。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

mkdir 新しいDirectoryを作成する Command

02

mkdirでは 複数Directoryを一度に作成 することもできる

03

mkdir -pを使うと 存在しない親Directoryも含めて階層作成 できる

04

rmdir 空のDirectoryを削除する Command

05

中身ごと削除できる rm -rは強力なので、 Pathと対象をよく確認してから使う ことが重要

NEXT LESSON

次は「cat・less・head・tailでファイル内容を確認する」を学びましょう

mkdir・rmdirを使って、 Directoryを作成・削除する方法を学びました。

次は、 Linux Serverを管理するうえで非常に重要な File内容の確認 に進みます。

catでFile全体を表示し、 lessで長いFileを確認し、 headtailで 先頭・末尾を確認する方法を学習します。

cat・less・head・tailでファイル内容を確認する
LINUX BEGINNER

Linux初級講座の一覧へ戻る

学習順を確認したい場合は、 Linux初級講座の一覧ページへ戻れます。

← Linux初級講座へ戻る
目次