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

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

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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する