【LinuC/LPIC対策】rmdirコマンドとオプションの由来【Linux】

LinuC/LPIC対策

はじめに

Linuxでディレクトリを削除するコマンドには、rmコマンドとrmdirコマンドの2種類があります。rmdir(remove directory)コマンドは、その名の通りディレクトリを削除しますが、rmコマンドと決定的に異なる点があります。それは、「空のディレクトリ」しか削除できないという厳格なルールです。

この特性から、rmdirは意図しないデータ削除を防ぐための安全なコマンドとして使われることがあります。

LPICレベル1の試験では、rmdirrm -rの違い、そして階層的な空のディレクトリを一括で削除するためのオプションの理解が問われます。この記事では、rmdirコマンドの基本的な使い方から、コマンド名の由来、必須オプション、そしてLPIC対策として押さえるべきポイントまでを詳しく解説していきます。


rmdirコマンドの基本

まずは、rmdirコマンドの基本的な使い方と、ディレクトリ削除の書式を確認しましょう。

rmdirコマンドの書式

rmdir [オプション] ディレクトリ名...
  • ポイント: 削除対象のディレクトリが空でない場合(ファイルやサブディレクトリが一つでも含まれている場合)、rmdirエラーとなり、削除を実行しません

主要オプション一覧

オプション意味補足
-pディレクトリを削除した後、空になった親ディレクトリも同時に削除するparents
-v実行された削除処理を詳細に表示するverbose

コマンド名の由来:なぜ「rmdir」なのか?

rmdirコマンドの「rmdir」は、英語の “remove directory” の頭文字を取った略語です。

  • remove: 取り除く
  • directory: ディレクトリ

つまり、「ディレクトリを取り除く(削除する)」という、その機能そのものを直接的に表しています。


rmdirとrm -rの決定的な違い

項目rmdirコマンドrm -rコマンド
削除条件空のディレクトリのみ削除可能。空でないとエラー。空でなくても削除可能。中身を再帰的に削除する。
安全性非常に高い(意図しないファイル削除を防ぐ)。低い(強力だが、データ消失のリスクが高い)。
用途ファイル整理後の、不要な空ディレクトリのクリーンアップ。ファイルとディレクトリを問わず、強制的に削除。

必須オプションの詳細と実践例

rmdirコマンドのオプションを、主要オプション一覧の順番に沿って詳しく見ていきます。

1. -p (parents) オプション:親ディレクトリの同時削除

意味: 指定したディレクトリを削除した後、その親ディレクトリが空になった場合、その親ディレクトリも連鎖的に削除します。mkdir -pの逆の操作です。

実践例:

mkdir -p data/2025/Q1 #階層的なディレクトリを作成(事前準備)
rmdir -p data/2025/Q1 

全てのディレクトリが削除される。
※-pをつけなかった場合は、下記画像のとおりパスで指定したQ1ディレクトリのみが削除される

オプションの由来: pparents(親)の頭文字です。

2. -v (verbose) オプション:処理内容の表示

意味: 実際に削除されたディレクトリの名前を、実行後に一行ずつ詳細に表示します。特に-pオプションと組み合わせて、どのディレクトリが連鎖的に削除されたかを確認するのに便利です。

実践例:

rmdir -pv data/2025/Q1

オプションの由来: vverbose(冗長な、詳細な)の頭文字です。


LPIC対策としてのポイント

rmdirコマンドに関するLPICの出題傾向として、以下の点を確実に押さえておきましょう。

  1. 削除条件: rmdirが削除できるのは、空のディレクトリのみであることを絶対的に覚えておくこと。
  2. -pオプションの役割: 階層的な空ディレクトリを一括で削除するために使用されること。
  3. rmとの違い: ディレクトリを中身ごと削除したい場合はrm -rを使い、安全に空ディレクトリのみを削除したい場合はrmdirを使う、という使い分けを理解しておくこと。

まとめ

今回は、空のディレクトリを削除するrmdirコマンドについて、その基本的な使い方からコマンド名の由来、そして特に重要なオプションまでを詳しく解説しました。rmdirコマンドは、その制限(空のディレクトリのみ削除可能)により、rm -rよりも安全にファイルシステムを整理するために使用されます。

LPICレベル1の試験対策としては、連鎖的な削除を可能にする-pオプションの役割と、rmコマンドとの明確な違いをしっかりとマスターしておきましょう。

コメント

タイトルとURLをコピーしました