Linuxで不要になったディレクトリを削除したいときに使うコマンドのひとつが「rmdir」です。シンプルなコマンドですが、使い方を誤ると削除できなかったり、エラーメッセージが表示されたりすることがあります。本記事では、rmdir
コマンドの基本的な使い方から、エラーの原因とその対処法、他の削除コマンドとの違いまで、初心者にもわかりやすく解説していきます。安全にディレクトリを削除するための知識を身につけましょう。
rmdirコマンドとは?
rmdir
(remove directory)は、その名の通りディレクトリを削除するためのLinuxコマンドです。
ただし、削除できるのは「中身が空のディレクトリ」のみです。ファイルや他のディレクトリが中に入っている場合、削除はできません。
基本的な構文は以下の通りです:
rmdir ディレクトリ名
たとえば、test
という名前の空のディレクトリを削除したい場合は以下のようにします:
rmdir test
このコマンドを実行すると、test
ディレクトリが削除されます。
空でないディレクトリは削除できない
rmdir
を使う際に最もよくあるエラーが、「ディレクトリが空でないため削除できない」というものです。以下のようなエラーメッセージが表示されます:
failed to remove 'sample': Directory not empty
この場合は、まずそのディレクトリの中にファイルやサブディレクトリが存在していないかを確認しましょう。確認には次のようにls
コマンドを使います。
ls sample/
中にファイルがある場合は、それらをすべて削除するか、rmdir
以外の方法を使う必要があります。
中身があるディレクトリを削除したい場合は?
中にファイルが入っているディレクトリを削除したい場合には、rmdir
ではなくrm -r
コマンドを使用します。
rm -r ディレクトリ名
たとえば、sample
というディレクトリとその中身すべてを削除したい場合:
rm -r sample
-r
オプションは「再帰的(recursive)」という意味で、ディレクトリの中身もすべて削除します。ただし、このコマンドは非常に強力で、一度削除すると元に戻すことができません。使用には注意が必要です。
複数の空ディレクトリを一気に削除する方法
rmdir
は複数のディレクトリ名を一度に指定することができます。
すべてが空である場合、次のように一括で削除が可能です。
rmdir dir1 dir2 dir3
このように、効率よく削除できますが、1つでも空でないディレクトリがあると、その部分でエラーとなり、以降のディレクトリが処理されない可能性もあるため注意が必要です。
--ignore-fail-on-non-emptyオプションの活用
GNU版のrmdir
には--ignore-fail-on-non-empty
というオプションがあります。
これは、空でないディレクトリが含まれていても、エラーメッセージを表示せずにスキップして処理を続けるというものです。
rmdir --ignore-fail-on-non-empty dir1 dir2 dir3
このオプションを使うことで、「空のディレクトリだけを削除する」といった目的で複数削除したいときに便利です。
親ディレクトリも一緒に削除したい場合は?
--parents
オプションを使えば、削除対象のディレクトリだけでなく、その親ディレクトリも空であれば一緒に削除できます。
たとえば、以下のような階層があるとします:
project/
└── tmp/
└── test/
test
を削除し、tmp
とproject
も空であれば削除したい場合:
rmdir --parents project/tmp/test
このコマンドは、test
→ tmp
→ project
の順に空であればすべて削除していきます。
rmdirを使うときの注意点
- 中身のあるディレクトリは削除できない:これは安全のための仕様です。
- 削除の前に確認を:
ls
などでディレクトリの中身を必ずチェックしましょう。 rm -r
との使い分け:完全削除をしたいときはrm -r
、安全に空のディレクトリだけを削除したいときはrmdir
。- スクリプト内での使用に注意:大量のディレクトリ削除処理では、条件分岐などで空チェックを組み合わせて安全に。
削除前に中身を自動チェックする方法(応用)
スクリプトなどで空かどうかを判定してから削除したい場合は、以下のような方法が使えます:
[ -d "$dir" ] && [ -z "$(ls -A "$dir")" ] && rmdir "$dir"
このワンライナーは、
- 指定されたパスがディレクトリか?
- 中身が空か?
をチェックしたうえで、rmdir
を実行します。
まとめ:rmdirは「安全な削除」のための基本コマンド
rmdir
コマンドは一見シンプルですが、「空のディレクトリしか削除できない」という特性により、誤って必要なファイルを削除する心配が少ない、安全志向のコマンドです。
- 基本の使い方を押さえておけば安心して使える
- 空でない場合は削除できないので
rm -r
と使い分ける - 複数削除や親ディレクトリ削除にはオプションが便利
このような特性を理解して、rmdir
を上手に活用していきましょう。削除処理はときに取り返しがつかないため、慎重さと正しい知識が重要です。Linuxの操作に慣れる第一歩として、rmdir
はとても良い練習題材とも言えるでしょう。