こんにちは、インフラエンジニアのryuです。
今回は、linuxでディレクトリを削除するコマンドrmdirを解説します。rmdirとはremove directoryの略で、ディレクトリを削除します。rmdirコマンドの使い方と良く使うオプションを紹介したいと思います。
目次
linuxでディレクトリを削除するコマンド”rmdir”

では早速rmdirについて解説したいと思います。
まずは、コマンドの使い方を学びましょう。
rmdirコマンドの使い方
rmdirコマンドは以下のように使用します。
rmdir testdir
rmdir [削除するディレクトリのパス]
rmdirの後ろにディレクトリのパスを指定するだけです。簡単ですね。
ディレクトリのパスは、絶対パスでも相対パスでも問題ありません。絶対パスと相対パスが何か分からない方はこちらの記事を参考にしてください。
では、Linuxで実際にコマンドを入力して確認してみましょう。
linuxでrmdirコマンドでディレクトリを削除する
まず、削除するためのディレクトリを作成しましょう。ディレクトリを作成するコマンドはmkdirです。mkdirmakeとは、make directoryの略でディレクトリを作成するという意味です。
mkdir testdir
また、lsコマンドを使用してファイルが本当に作成されたのかを確認しましょう。
ls -la
lsコマンドを使用するとカレントディレクトリ配下に、”testdir”というディレクトリが作成されているのが分かります。

では、この作成した”testdir”ディレクトリを削除してみましょう。また、確認のためもう一度lsコマンドを入力します。
rmdir testdir
ls -la
すると、”testdir”ディレクトリが削除されているのが分かります。

ディレクトリの書き込み権限が無いと削除できない
rmコマンドを使う上で注意点があります。
それは、ディレクトリの書き込み権限が無いとディレクトリを削除できないということです。
権限は”ls -la”のコマンドを使用すると確認することができます。

“rwx rwx rwx user user”の部分です。権限については詳しくは解説しませんが、”w”の書き込み権限が付いていることが必須です。
chmodコマンドを使用して、ディレクトリの権限を変更しましょう。
chmod 777 testdir ← 777で書き込み、読み込み、実行権限全てを付与する
mkdir testdir
linuxのディレクトリ削除に使うオプションを解説
次にrmdirのオプションについて紹介します。
rmdirの主なオプションは以下の通りです。
- -p 親ディレクトリも削除する
- -v ディレクトリを削除した結果のメッセージを表示する
この中で、一番良く使うのは”-p”オプションです。親ディレクトリも削除します。
“-p”オプションで親ディレクトリも削除する
まず、ディレクトリを作成します。
mkdir -p testdir/testdir1
mkdir -p testdir/testdir2
“testdir”ディレクトリの配下に”testdir1”と”testdir2″ディレクトリが作成されました。
lsコマンドを使用して、本当に作成されたのか確認しましょう。
ls -la tesdir

では、”-p”のオプションを付けるのと付けないのでは、どのように動作の違いが出るのでしょうか。確認してみましょう。
rmdir testdir/testdir1
ls -la testdir
オプションを付けない場合は、”testdir1″だけが削除されるのが分かります。

では、“-p”オプションを付けてみましょう。
rmdir -p testdir/testdir2
ls -la testdir
→ls: cannot access 'testdir': No such file or directory
ls -la

“-p”オプションを付けると、”testdir2″の親ディレクトリである”testdir”も削除されていることが分かります。つまり、”-p”オプションで親ディレクトリも削除できるということです。
rmdirのオプション一覧
rmdirのオプション一覧は以下の通りです。
–ignore-fail-on-non-empty | ディレクトリが空ではないときに出るエラーを表示しない |
-p | 親ディレクトリも削除する |
-v | ディレクトリを削除した結果のメッセージを表示する |
詳細はこちらのドキュメントでも確認することができます。
rmdir invocation (GNU Coreutils)
linuxのディレクトリが空でない場合の削除方法
rmdirで次のようなエラーが出ることがあります。
rmdir: failed to remove ‘testdir/’: Directory not empty
これは、”testdir”ディレクトリの中に何かファイルが入っている場合に起こるエラーです。
その時は、”rm -r”コマンドを使用しましょう。
rm -r testdir
rmコマンドを使用すると、全てのファイルを削除してしまうので、注意しましょう。
詳しい使い方はこちらの記事をご覧ください。
【linux】rmコマンドの使い方解説!【ファイル削除するコマンドを使ってみよう】
linuxでディレクトリ削除まとめ
さいごにおさらいです。
rmdirコマンドでディレクトリを削除します。使い方は以下の通りです。
rmdir testdir
rmdir [削除するディレクトリのパス]
注意点は2つ
- ディレクトリの書き込み権限が無いと削除できない
- ディレクトリの中にファイルがあると削除できない
ということです。
以上でrmdirの解説を終わります。ありがとうございました。
Linuxのその他のコマンドはこちらの記事で解説しております!ぜひ参考にしてください。