Rmdir

rmdirコマンドは、Unix系OS、MS-DOS、およびそれらと互換性のあるOS(OS/2、Windowsなどを含む)において、ディレクトリを削除するために用いられるコマンドです。名称は"remove directory"の略称であり、MS-DOS系では`rd`というエイリアス(別名)が一般的に使用されます。また、POSIX(Portable Operating System Interface)のシステムコールの一つとしても定義されています。

使用法



rmdirコマンドは、削除したいディレクトリの名前(パス)を引数として指定します。基本的な構文は以下の通りです。

bash
rmdir name_of_directory


ここで`name_of_directory`は削除対象となるディレクトリのパスを表します。重要な点として、rmdirコマンドで削除できるのは中身が空のディレクトリのみです。ディレクトリ内にファイルやサブディレクトリが存在する場合、rmdirコマンドは失敗します。

Unix系のシステムでは、`-p`オプションを利用することで、ディレクトリを削除した結果、親ディレクトリも空になった場合に、親ディレクトリまで自動的に削除することが可能です。

例えば、以下のコマンドを実行した場合:

bash
rmdir -p foo/bar/baz


最初に`baz/`ディレクトリが削除され、次に`bar/`ディレクトリ、そして最後に`foo/`ディレクトリが削除されます。このように、`-p`オプションを用いることで、指定したディレクトリツリー全体を、末端のディレクトリから順に削除できます。

もし、空ではないディレクトリを、その内容物ごと再帰的に削除したい場合は、`rm`コマンドに`-r`オプションを指定します。例を挙げると、以下のようになります。

bash
rm -r foo/bar/baz


このコマンドは`foo/bar/baz`ディレクトリとその内部のすべてのファイルおよびサブディレクトリを削除します。

MS-DOS環境において、`rmdir`コマンドと同等の再帰的なディレクトリ削除を行うには、`deltree`コマンドを使用します。Windows環境では、`rd`コマンドに`/s`オプションを指定することで、同様の動作を実現できます。

bash
rd /s directory_name


システムコール



POSIX標準における`rmdir`システムコール関数プロトタイプは、一般的に以下のような形式で宣言されます。

c
int rmdir(const char *pathname);


ここで、`pathname`は削除対象ディレクトリのパスを表します。この関数は、成功した場合は0を、失敗した場合は-1を返します。失敗の際には、`errno`グローバル変数にエラーコードがセットされます。

Microsoft Visual C++のCランタイムライブラリには、Windows APIを利用して実装された、類似のインターフェースを持つ関数`_rmdir()`が定義されています。この関数はグローバルスコープを持ち、アンダースコアで始まる命名規則が使われています。これは、処理系のために予約された名前であることを示しています。POSIXと同名のシンボルとして`rmdir`マクロも定義されていますが、ISO標準ではないため、利用は非推奨とされています。

注釈



`rmdir`コマンドは、ディレクトリを削除する際に、誤って重要なディレクトリを削除してしまうリスクがあるため、慎重に使用する必要があります。特に、再帰的な削除を行う場合は、削除対象のディレクトリが正しいことを十分に確認することが重要です。

関連項目




外部リンク



もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。