ウェブサイト検索

初心者向けの Linux rmdir コマンド例


Linux ユーザーとして、私たちは定期的にファイルやディレクトリを操作します。ユーザーが実行する一般的な操作の 1 つは、ファイル システムからディレクトリを削除することです。ただし、ディレクトリを削除するときは特に注意する必要があります。不用意に削除操作を実行すると、データが失われる可能性があるためです。

この初心者向けの記事では、rmdir コマンドについて学びます。また、日常的に使用できるいくつかの実践的な例についても説明します。

rmdir コマンドの構文は、他の Linux コマンドと似ています。大まかに言うと、 これはオプション引数の 2 つの部分に分かれています。

rmdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...

ここで、角括弧 ([]) はオプションの引数を表し、山括弧 (<>) は必須の引数を表します。

Linux での rmdir コマンドの基本的な使用法

名前が示すように、rmdir コマンドはディレクトリを削除するために使用されます。ただし、削除できるのは空のディレクトリのみであることに注意することが重要です。このセクションでは、rmdir コマンドの基本的な使用法を説明します。

Linux で空のディレクトリを削除する

まず、空のディレクトリをいくつか作成します。

mkdir dir1 dir2 dir3 dir4

必要なディレクトリが作成されていることを確認してみましょう。

ls -l

次に、dir1 ディレクトリを削除し、削除されたことを確認しましょう。

rmdir dir1
ls -l

同様の方法で、rmdir コマンドを使用して、複数の空のディレクトリを一度に削除できます。

残りのディレクトリを削除しましょう。

rmdir dir2 dir3 dir4

最後に、すべてのディレクトリが削除されたことを確認します。

ls -l

ここでは、ls コマンドではディレクトリが表示されていないことがわかります。

rmdir 詳細モード

前のセクションでは、ls コマンドを使用してディレクトリの削除を確認しました。ただし、前のコマンドの動作を確認するためだけにコマンドをもう 1 つ実行するのは意味がありません。

このような場合、-v オプションを使用して冗長モードを有効にすると、処理されたすべてのディレクトリの診断が提供されます。

前に作成したのと同じディレクトリ構造を作成しましょう。


mkdir dir1 dir2 dir3 dir4

次に、冗長モードを有効にしてディレクトリを削除しましょう。

rmdir -v dir1 dir2 dir3 dir4
ls -l

上記の出力から、すべてのディレクトリが削除されたと結論付けることができます。

Linux で空のサブディレクトリを削除する

私たちはファイル システム上にサブディレクトリを作成することがよくあり、これによりデータを適切な方法で整理できます。空のサブディレクトリを操作する方法を見てみましょう。

最初の例で説明したように、rmdir コマンドを使用して複数のディレクトリを削除できます。ただし、サブディレクトリの数が多い場合、状況は難しくなります。

このような場合、-p オプションを使用すると、ディレクトリとそのすべての祖先が削除されます。これを例で理解してみましょう。

まず、サブディレクトリ構造を作成します。

mkdir -p dir1/dir2/dir3/dir4/dir5

この例では、mkdir コマンドで -p オプションを使用してサブディレクトリ構造を作成しました。

これらのディレクトリをすべて一度に削除しましょう。

rmdir -p -v dir1/dir2/dir3/dir4/dir5

rmdir: removing directory, 'dir1/dir2/dir3/dir4/dir5'
rmdir: removing directory, 'dir1/dir2/dir3/dir4'
rmdir: removing directory, 'dir1/dir2/dir3'
rmdir: removing directory, 'dir1/dir2'
rmdir: removing directory, 'dir1'

ここで、冗長モードは dir5 ディレクトリとそのすべての祖先ディレクトリを削除します。

ハンドルディレクトリが空ではない失敗

rmdir が削除できるのは空のディレクトリのみであることはすでにわかっています。空ではないディレクトリを削除しようとすると、エラーが発生します。これによりデータ損失に対する保護が提供されますが、まれに問題が発生する可能性があります。

たとえば、Jenkins によって実行されているスクリプトから空ではないディレクトリを削除しようとすると、ジョブは失敗を報告します。

これをシミュレートするために、空ではないディレクトリを削除してみます。

mkdir -p dir1/dir2/dir3/dir4/dir5
rmdir dir1

rmdir: failed to remove 'dir1': Directory not empty

このようなエラーの場合、 --ignore-fail-on-non-empty オプションを使用できます。これにより、空でないディレクトリが原因で発生したすべてのエラーが無視されます。

コマンドでこのオプションを使用し、戻り値を確認してみましょう。

rmdir --ignore-fail-on-non-empty dir1
echo $?

0

この例では、コマンドがエラーを報告せず、戻り値 0 がコマンドの実行が成功したことを示していることがわかります。ただし、このオプションはエラーを抑制するだけであり、空でないディレクトリは削除されないことに注意することが重要です。

rmdir コマンドで正規表現を使用する

他の Linux コマンドと同様に、rmdir コマンドで正規表現を使用できます。次の 2 つの正規表現の使用法を見てみましょう。

  • ? – 正確に 1 文字と一致します。
  • * – 前の文字の 0 個以上の出現と一致します。

まず、空のディレクトリをいくつか作成します。

mkdir dir1 dir2 dir-01 dir-02

ここで、'?' 正規表現と文字列 'dir' を使用して、dir1dir2 を削除しましょう。ディレクトリ:

rmdir -v dir?

rmdir: removing directory, 'dir1'
rmdir: removing directory, 'dir2'

ここでは、コマンドによって正しいディレクトリが削除されたことがわかります。

次に、'*' 正規表現を使用して、他の 2 つのディレクトリを削除します。

rmdir -v dir-*

rmdir: removing directory, 'dir-01'
rmdir: removing directory, 'dir-02'

この例では、他の 2 つのディレクトリが削除されていることがわかります。

このセクションでは、正規表現を 2 つだけ使用する方法について説明しました。ただし、rmdir コマンドを使用して他の高度な正規表現を使用することもできます。

この記事では、 まずrmdir コマンドの基本的な使用法について見ました。次に、冗長モードとサブディレクトリの削除について説明しました。次に、ディレクトリが空でない場合の障害の処理方法を確認しました。最後に、正規表現の使用方法について説明しました。