ディレクトリを削除する!rmdirコマンドの使い方 詳細まとめ【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket
rmdirコマンド

rmdirはディレクトリを削除するLinuxコマンドだ。

CUIでディレクトリを削除することはよくある作業だ。難しくないコマンドだが、覚えておいた方がいいオプションもある。

rmコマンドとの違いもご紹介しているのでセットで覚えておこう。

rmdirコマンドの基本

コマンドの基本動作

rmdirコマンドでディレクトリを削除するのは次のように簡単だ。

$ rmdir ディレクトリ名

例えば、work01ディレクトリを削除するには、次のコマンドだ。

$ rmdir work01

rmdirコマンド

work01ディレクトリが削除された。

上記rmdirコマンドを試すなら下のコマンドをLinux上で実行すればすぐに再現可能だ。

コマンドの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション-p(オプション--parents)

親ディレクトリも削除する

オプション--ignore-fail-on-non-empty

ディレクトリが空ではないときに出るエラーを表示しない

オプション-v(オプション--verbose)

ディレクトリを削除した結果のメッセージを表示する

ひとつずつ見ていこう。

-pオプション(--parentsオプション):親ディレクトリも削除する

階層の深いディレクトリを削除する際、何もオプションを指定しなければ、ディレクトリに指定した中で一番階層の深いファイルのみが削除される。

-pオプション(--parentsオプション)を指定することで、ディレクトリに指定したすべてのディレクトリが削除される。

すべてのディレクトリを削除対象とするには次のコマンドだ。

$ rmdir -p ディレクトリ名

試しに-pオプション(--parentsオプション)を指定せずに、階層の深いwork02ディレクトリの中のsub01ディレクトリの中のdata01ディレクトリを削除してみよう。

$ rmdir work02/sub01/data01

確認してみよう。

$ ls –lR work02

rmdir -p

最下層のdata01のみが削除された。

今度は-pオプション(--parentsオプション)を指定し、親ディレクトリも同時に削除してみよう。

階層の深いwork03ディレクトリの中のsub01ディレクトリの中のdata01ディレクトリの親ディレクトリも含み、すべてを削除するには、次のコマンドだ。

$ rmdir -p work03/sub01/data01

確認してみよう。

$ ls –lR work03

rmdir -p 2

work03自体が削除され見つからなくなった。

--ignore-fail-on-non-emptyオプション:ディレクトリが空ではないときに出るエラーを表示しない

何もオプションを指定しなければ、空ではないディレクトリを削除する際にエラーが表示される。

このエラーを表示しないようにするには次のコマンドだ。

$ rmdir --ignore-fail-on-non-empty ディレクトリ名

まず、--ignore-fail-on-non-emptyオプションを指定せずに、ディレクトリを削除したらどうなるか確認してみよう。

次のコマンドで、work04ディレクトリの中にsub03ディレクトリを作り、さらにその中にdata03ディレクトリを作っておく。

$ mkdir -pv work04/sub03/data03

次のコマンドで、work04ディレクトリの中にsub03ディレクトリの中にtest.datファイルを作っておく。

$ echo "test" > work04/sub03/test.dat

この時点で、work04ディレクトリ内の構造を確認しておこう。

$ ls –lR work04

rmdir --ignore-fail-on-non-empty

work04ディレクトリの中にsub03ディレクトリの中に、data03ディレクトリとtest.datファイルが入っている。

--ignore-fail-on-non-emptyオプションを指定せずにwork04ディレクトリを削除したらどうなるか確認してみよう。

$ rmdir work04

rmdir --ignore-fail-on-non-empty 2

work04ディレクトリは空ではないため、削除できないというエラーメッセージが表示される。

今度は--ignore-fail-on-non-emptyオプションを指定して、エラーメッセージが表示されないか確認してみよう。

ディレクトリが空ではないwork04ディレクトリを削除しようとする時にエラーメッセージが表示されないようにするは、次のコマンドだ。

$ rmdir --ignore-fail-on-non-empty work04

rmdirコマンド

エラーメッセージが表示されない。

work04ディレクトリは削除されているのか確認してみよう。

$ ls –lR work04

rmdir後の確認結果

削除はされていない。エラーメッセージが表示しないだけだ。

実際にディレクトリ内もすべて削除したい場合は、rmコマンドの-rオプションでディレクトリ内もすべて削除するコマンドを使う。

work04ディレクトリとその中をすべて削除する場合は、次のコマンドだ。

$ rm -r work04

rm -rオプション

実際にwork04ディレクトリは削除されているのか確認してみよう。

$ ls –lR work04

rmdir -r

work04が削除されたため、見つからなくなった。

rmコマンドでは、一度にすべて削除されてしまうので操作は慎重にしよう。

-vオプション(--verboseオプション):ディレクトリを削除した結果のメッセージを表示する

ディレクトリの削除の記録を取るオプションだ。

次のコマンドで、work05ディレクトリの中にsub05ディレクトリを作り、さらにその中にdata05ディレクトリを作っておく。

$ mkdir -pv work05/sub05/data05

結果を記録しながら、内容が空ではないwork05ディレクトリの中すべてを削除するコマンドは次の通りだ。

$ rmdir -pv work05/sub05/data05

rmdir -pv

結果を表示しながら、work04以下のディレクトリが削除された。

rmコマンドとの違い

rmdirコマンドは一見rmコマンドの-rオプションが付与された動作と似ているが、空ではないディレクトリに関しての動作が違っている。

a/b/c/d/eという多重のディレクトリ構造は、rmdir –r aのコマンドでは削除できず、rmdir –r a/b/c/d/eと最後のディレクトリまで記述しなければならない。

さらにディレクトリcの中にファイルxがある場合は、一度のコマンド入力では削除できないのだ。

非常に誤解しやすいのだが、rmdirコマンドは、フォルダをゴミ箱に捨てるようなイメージと違い、親ディレクトリからその下層のディレクトリを一度に削除できない。

その点、空ではないディレクトリの削除はrmコマンドの-rオプションの方が簡単だ。

しかし、rmコマンドでは一度の操作で指定したすべてのディレクトリやその中のファイルを削除してしまう。きちんと確認しないと危険でもあるコマンドだ。

rmdirは削除の対象があくまでディレクトリなので、ファイルを間違って消すことはないだろう。

動作の違いを理解して、使用するケースに合わせて適切な削除のコマンドを選択してほしい。

関連項目

最後にrmdirコマンドに関連して、基本的なファイルやディレクトリ操作のコマンドも紹介しておく。

mkdirコマンド

ディレクトリを作成する。

rmコマンド

ファイルやディレクトリを削除する。

まとめ

rmdirコマンドについてまとめてみた。

rmコマンドよりは頻度が落ちるが、こちらもよく使うコマンドの一つだ。度々調べるのではなく、覚えやすいコマンド名(remove directory)でもあるので、オプションと一緒に覚えてしまおう。

 

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*